2012-05-21 193 views
1

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

回答

2

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

1

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

有时OpenGL会与CPU同步执行一些代码:像glGetTexImage,getPixels等......这会严重影响性能。

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

相关问题