如何解决您可以在iPad上进行的OpenGL ES调用数量上限吗?
| 谁能告诉我在iPad上可以进行的最大OpenGL ES调用次数(即OpenGL绘制调用和状态更改)是否受到限制? 我正在开发游戏,并且看到较低的FPS,所以我想知道这是否与我的大量OpenGL调用有关。解决方法
OpenGL ES命令没有真正的最大值,但是每个命令确实都有一些相关的开销。应消除冗余状态更改,并应通过按先绘制所有状态再绘制下一个状态的方式对几何图形进行分组来减少昂贵的状态更改。苹果在其《 iOS OpenGL ES编程指南》中对此提出了一些建议。
但是,我很少发现OpenGL ES命令是导致我的应用程序性能显着下降的原因。较大的问题往往是由于几何图形的大小,任何着色器的复杂性或应用于场景的其他效果所致。我在这里分享了一些我为减小几何尺寸而应用的技巧,以及在这里为着色器进行性能分析的一种工具,但是我仍在学习着色器调整的来龙去脉。
如果您真的很想微调正在执行的OpenGL调用,则最好的分析工具是Xcode 4随附的新OpenGL ES Analyzer工具。我在回答中展示了该工具的几个示例屏幕在这里,我用它来识别一些冗余设置。它将为您找到这些调用,并指出它们在您的代码中的位置。您还可以使用Time Profiler来查看您是否在渲染CPU时给CPU施加了更多的负担,并找出了令人讨厌的代码行。
,据我所知,glCalls的最大数量没有限制。但是肯定的是,调用gl的次数越多,花费的时间就越多。批处理渲染是必须使用OpenGL进行的主要优化之一。
,不用怀疑瓶颈,而是使用Instruments找到它。
跟踪模板OpenGL ES分析是选择的武器。上次使用它时,您必须手动将其附加到设备上正在运行的进程(所有其他启动选项均失败)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。