我是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等等。 你说的这种情况在远程绘制的时候有应用。
比如一个类似足球游戏的场景,其实显示端不太关注观众台,这样观众台的信息是不用每帧都传输的(只需要第一帧的时候传输背景,之后可以若干帧传输一次,或者再也不传输)。
但是我说的这个应用和你所描述的是不一样的,因为远程绘制的瓶颈可能是网络,而不是绘制时间。 可以的,渲染视频的时候就这么做过。

本文解释了如何使用< audio>元素,包括用于格式选择的最佳实践(MP3,OGG Vorbis),文件优化和JavaScript控件用于播放。 它强调使用多个音频f

本文解释了如何创建和验证HTML5表格。 它详细介绍了>元素,输入类型(文本,电子邮件,编号等)和属性(必需,模式,最小,最大)。 HTML5的优势比旧方法形成

本文讨论了使用HTML5页面可见性API来检测页面可见性,提高用户体验并优化资源使用情况。关键方面包括暂停媒体,减少CPU负载以及基于可见性变化管理分析。

本文讨论了使用视口元标记来控制移动设备上的页面缩放,重点是宽度和初始尺度之类的设置,以获得最佳响应和性能。

本文讨论了使用GeOlocation API管理用户位置隐私和权限,并强调要求权限,确保数据安全性并遵守隐私法律的最佳实践。

本文使用JavaScript详细介绍了创建Interactive HTML5游戏。 它涵盖了游戏设计,HTML结构,CSS样式,JavaScript逻辑(包括事件处理和动画)以及音频集成。 必需的JavaScript库(Phaser,Pi

本文介绍了如何使用HTML5拖放API来创建交互式用户界面,详细介绍了使元素可拖动的步骤,处理关键事件并通过自定义反馈来增强用户体验。它还讨论了一个常见的陷阱

本文解释了HTML5 Websockets API,用于实时双向客户服务器通信。 它详细详细介绍了客户端(JavaScript)和服务器端(Python/Flask)的实现,以应对可伸缩性,状态管理,一个挑战


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

禅工作室 13.0.1
功能强大的PHP集成开发环境