是否可以通过使用脏矩形来优化 OpenGL ES 2.0 绘图?
就我而言,我有一个 2D 应用程序需要绘制背景纹理(iPad 上的全屏),然后在每个帧上绘制几个 VBO 的内容。问题是这些 VBO 可能包含数百万个顶点,需要花费几秒钟的时间才能将所有内容绘制到显示器上。然而,每帧实际上只会更新显示的一小部分。
这种优化是否可行,以及如何(或者更恰本地说,在哪里)实现?是否需要将某种裁剪平面传递到顶点着色器中?
最佳答案
如果您使用glViewport
设置区域,剪裁会相应调整。然而,这发生在顶点着色器阶段之后、光栅化之前。由于GL无法知道您自己的顶点程序的结果,因此它无法在应用顶点程序之前整理出任何顶点。之后,就这样了。它的效率如何取决于实际的 GPU。
因此,您必须将对象排序并分割为更小的(例如矩形边界)图 block ,并自行在视野中测试它们以获得完整的性能。
关于ios - 使用脏矩形优化 OpenGL ES 2.0 2D 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767192/