Opengl Es 2.0着色管理器

时间:2012-05-21 02:33:32

标签: performance opengl-es opengl-es-2.0

我有一个简单的问题,从内存中检查整数值或者让opengl做一些简单的事情比如使用程序或绑定纹理更快吗? 我正在编写着色器管理器类,只是想知道是否存在任何差异,从我的观点来看,检查整数以避免不需要调用它看起来更便宜。

2 个答案:

答案 0 :(得分:2)

避免不必要的管道状态更改总是一件好事,我可以想象检查整数值会比调用glUseProgram更便宜。只需要#34;程序连贯"渲染时,所以你大部分时间都不做(检查和glUseProgram)。我还建议您阅读本指南http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008793-CH1-SW1。它将帮助您进行优化。

答案 1 :(得分:1)

优化代码的最佳方法之一是避免尽可能多的OpenGL / DX函数调用。因此,在大多数情况下,只检查一个局部变量应该比使用openGL代码更好。

有时OpenGL会与CPU同步执行一些代码:如glGetTexImage,getPixels等......这会对性能造成很大影响。

当谈到'使用程序'或'绑定纹理'时,我不确切知道成本是多少。这取决于规范和设备实现。