我正在繪製一個使用glBindBuffer的600萬個元素(四邊形和三邊形)的巨大模型。如果我爲所有組件(組件,是一組元素)提供單一顏色,與具有不同顏色的組件相比,模型旋轉速度更快。我可否知道這個原因。我能從我身邊改善任何表現嗎?opengl單色和多色性能問題
回答
在計算機圖形學中有一個術語'批'。簡而言之,批處理是狀態+繪製;如果發生多次抽籤但狀態沒有變化,則該抽籤將包含在同一批次中。但是,改變狀態會中斷批處理並準備新的狀態。這是CPU密集型任務;您應儘可能少使用批次,否則您將達到CPU限制。
每幀6百萬批次不是很低的數字。如果你的對象很小(幾個元素 - 有時甚至是幾百個元素),你可以將它們全部合併到一個頂點數組中,並添加包含顏色的額外頂點屬性(如果使用固定管線 - 使用glColorPointer
)。如果對象很大並且顏色開銷太重要 - 你可以使用實例化,但是它需要足夠現代化的圖形卡(但是無論如何渲染6百萬個對象都會很慢而不會下降GPU)。
謝謝你的回覆。
我可以寫僞代碼
for(i=0; i < iSize ; ++i)
{
glColorfv(componet[i].rgba);
glDrawElements(GL_QUADS,......);// THis is working fine.
}
但是我發現了什麼(感覺)是,如果及部件[I] .rgba對於所有i值,則該模型旋轉相同的(處理/縮放等)的速度更快與所有組件具有不同顏色的情況相比。
也許我可能會這樣發佈。對不起。
您可以(也應該)編輯您的問題以添加信息,而不是放置實際上不回答問題的答案。 – keltar
它是一個錯誤 – Vishwamithra
- 1. OpenGL和Xcode顏色問題
- 2. OpenGL着色問題
- 3. OpenGL顏色問題
- 4. OpenGL:繪圖四色褪色問題
- 5. OpenGL着色器問題
- 6. Qt/OpenGL着色器問題
- 7. 問題abour着色器和opengl轉換
- 8. OpenGL混合單色顏色
- 9. 菜單顏色和菜單問題
- 10. OpenGL着色器的性能分析
- 11. PowerVR SGX535着色器性能(OpenGL ES 2.0)
- 12. Android OpenGL性能問題
- 13. OpenGL低級性能問題
- 14. 在OpenGL着色器的問題
- 15. HTML5和XHTML角色屬性問題
- 16. OpenGL ES着色器降低了太多的性能
- 17. 子菜單顏色問題
- 18. 的OpenGL ES 2.0:多光源:着色問題
- 19. OpenGL ES多色緩衝區
- 20. OpenGL性能:VBOs /頂點着色器與glEnableClientState/glVertexPointer和glMultMatrix vs glUniformMatrix
- 21. 將PNG加載到OpenGL性能問題 - Java和JOGL比C#&Tao慢很多。OpenGL
- 22. Opengl/glsl着色器動畫和燈光問題
- 23. FormsAuthentication和角色問題
- 24. 角色和權限問題
- 25. XNA和FBX着色問題
- 26. 着色器和opengl轉換
- 27. (Libgdx)BitmapFont顏色和Opengl 2
- 28. OpenGL着色器和常量
- 29. openGL紋理和顏色
- 30. OpenGL ES和OpenGL兼容着色器
添加代碼示例。 'glBindBuffer'不是一個繪圖命令,你不能用它來繪圖。 – keltar