1

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

4

2 回答 2

2

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

于 2012-05-22T07:40:14.697 回答
1

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

有时 OpenGL 会与 CPU 同步以执行一些代码:如 glGetTexImage、getPixels 等……这会极大地损害性能。

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

于 2012-05-21T11:32:42.667 回答