GL_COMPILE與GL_COMPILE_AND_EXECUTE的運行速度差異

在修改一個多邊形渲染的程序時,無意中將原有顯示列表創建時的模式從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" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章