ios - 使用脏矩形优化 OpenGL ES 2.0 2D 绘图

标签 ios ipad optimization rendering opengl-es-2.0

是否可以通过使用脏矩形来优化 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/

相关文章:

iOS "thread-id"不分组推送通知

iOS 系统声音未播放

iphone - iOS: subview 的 xcode 实例

objective-c - sqlite fts 不适用于临时版本的应用程序,但仅适用于从 xcode 启动的版本

iphone - 获取半径内的位置

angular - 使用 Angular CLI 预加载字体

ios - NSURLCache 缓存不应缓存的随机响应

iphone - 关闭ios应用程序后如何使进程仍在运行

optimization - GCC 多个优化标志

c# custom group by 对于大型数据集真的很慢