• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > opengl/webgl 可以部分重绘吗?

opengl/webgl 可以部分重绘吗?

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含webgl等相关知识,匿名希望在学习及工作中可以帮助到您
我是webgl的初学者,在学习过程中发现教程中讲解 webgl 动画的时候,基本都是清除屏幕,然后应用变换,重新绘制这样的过程来达到动起来的效果。 但是我想,如果在一个非常复杂的场景中,只有一个很小的部分在移动,那么是否可以只绘制这很小的一部分不用全部的重新绘制呢?

回复内容:

实践上通常没太大意义。因为对于一个典型的3D场景,很多影响是全局的。比如一个物体的投影,很可能投到离得很远的另一个物体上。再比如运动模糊、ambient occlusion这类二维特效,也得是在整个场景渲染到二维的基础上。你只刷屏幕上面的一个块,就“不对”了。
实际上,3D场景的剪裁,通常在场景图上完成,而不是在屏幕空间上搞。 用scissor test,你就可以只clear一部分,只画那块区域的物体,再配合EGL_NV_post_sub_buffer,就可以只swap一部分。

但是实际使用中,你仍会发现这么做没意义,几乎所有时候你都会需要刷全屏。 如上面大家所说的 scissor test 可以做这个。不过一般3d场景用这个意义不大。因为你这个移动的小物体,可能影响到其他物体或者全局绘制的物体。这种情况下还是要重绘的。

但在特殊的一些场景上可以用到:
1 比如那种3d编辑器的左视图,上视图,下视图等等。在不同的区域显示不同的视角。
2 立体3D 需要绘制左眼/右眼 区域。其实和1类似。
3 3D UI,就是基于OpenGL/ES 接口做的 2D UI效果。比如安卓UI系统/一些电视上Launcher等等。 你说的这种情况在远程绘制的时候有应用。
比如一个类似足球游戏的场景,其实显示端不太关注观众台,这样观众台的信息是不用每帧都传输的(只需要第一帧的时候传输背景,之后可以若干帧传输一次,或者再也不传输)。

但是我说的这个应用和你所描述的是不一样的,因为远程绘制的瓶颈可能是网络,而不是绘制时间。 可以的,渲染视频的时候就这么做过。

您可能想查找下面的文章:

相关文章

  • 2017-08-06HTML最新标准HTML5总结(必看)
  • 2018-12-03HTML5与CSS3的新交互特性
  • 2018-12-03HTML5中div、article、section的区别及使用介绍_html5教程技巧
  • 2018-12-03如何解决滚动条样式问题
  • 2018-12-03HTML5 CANVAS:绘制阴影和填充模式
  • 2018-12-03如何绘制路径-线段
  • 2018-12-03整体而言,游戏是创意难还是开发难?
  • 2018-12-03在H5页面中怎样调用APP
  • 2018-12-03phonegap实现进行本地存储的方法介绍
  • 2017-08-06IE支持HTML5的解决方法

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 如何使用HTML5实现地理位置的获取
    • H5 的复制操作实例代码
    • 扁平化的bootstrap
    • html5 output标签是什么意思?html5 output标签的使用方法
    • 如何使用HTML5 Canvas绘制动态线性渐变
    • Zip压缩和解压技术在HTML5中的应用的代码案例(图)
    • HTML5 Canvas 图形组合是如何实现的?附代码
    • 将HTML5封装成android应用APK文件的几种方法
    • li inside-block在IE11换行无效的原因
    • 基于HTML5的齿轮动画特效_html5教程技巧

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有