GL_COMPILE与GL_COMPILE_AND_EXECUTE的运行速度差异

来源:互联网 发布:mac 中文输入法删除 编辑:程序博客网 时间:2024/05/15 00:05
在修改一个多边形渲染的程序时,无意中将原有显示列表创建时的模式从GL_COMPILE_AND_EXECUTE改为了GL_COMPILE,性能居然有了很大的提高。对于一个简单的由8万个三角形组成的模型使用简单的光照渲染,修改前只有八十几帧,修改后提高到了四百帧,当然我使用的是Geforce 7950GTX,这么高的帧速率不是问题,但是这已经和使用VBO时的渲染速度没什么差别了。(VBO的灵活性肯定是显示列表无法比拟的)

在google上搜索了一下[1],原来这样的差别是在GL设计之初就存在的,两种模式的实际执行方式就是不同的,而且估计硬件驱动已经对显示列表的执行进行了优化,所以与VBO的效率相差无几了。

所以要是希望在使用显示列表的时候获得更好的性能,应当使用GL_COMPILE模式创建,当然了,现在VBO的使用更有前途。

参考资料
[1]. http://www.talisman.org/opengl-1.1/ImpGuide/05_WriteProg.html#GLCOMPILEandEXECUTEMode  <script type="text/javascript"><!--google_ad_client = "pub-0008935412623678";//728x90, created 1/16/08google_ad_slot = "7746391271";google_ad_width = 728;google_ad_height = 90;//--></script> <script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> <script type="text/javascript"><!--google_ad_client = "pub-0008935412623678";//728x90, created 1/16/08google_ad_slot = "8291575712";google_ad_width = 728;google_ad_height = 90;//--></script> <script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>