我剛剛嘗試更新一個頂點緩衝區對象(vbo),它具有靜態繪製數據。爲什麼我可以用glBufferSubData
進行更新?我一直認爲靜態vbo不能改變。OpenGL更新靜態VBO
1
A
回答
5
GL_STATIC_DRAW
並不意味着數據無法更改。 glBufferData
的usage
參數是底層實現的提示,可能會提高性能,但不會限制實際使用情況。 documentation指出:
用法是GL實現如何訪問緩衝區對象的數據存儲的暗示。這使得GL實現可以做出更明智的決定,這可能會顯着影響緩衝區對象的性能。但是,它並不限制數據存儲的實際使用。
4
這些只是用法提示。該規範明確指出:
usage
被指定爲九個枚舉值之一。 [這9個枚舉值的描述如下]
usage
僅作爲性能暗示提供。指定的使用情況值不會限制數據存儲的實際使用模式。
(OpenGL 4.6 core profile specification,第6.2節 「創建和修改緩衝區對象數據存儲」,68-69頁)
相關問題
- 1. Android OpenGL ES每幀更新VBO數據
- 2. OpenGL VBO沒有正確更新
- 3. OpenGL中的動態VBO
- 4. OpenGL VBO問題
- 5. OpenGL VBO在Haskell
- 6. opengl vbo紋理
- 7. OpenGL VBO處理
- 8. OpenGL Java VBO
- 9. OpenGL多VBO
- 10. OpenGL VBO設置
- 11. opengl vbo advice
- 12. VBO的openGL
- 13. OpenGL VBO着色器
- 14. OpenGL繪圖與VBO
- 15. OpenGL單個VBO vs多個VBO
- 16. OpenGL將更多數據添加到VBO
- 17. 更好地創建新的VBO或只交換數據? (OpenGL)
- 18. 靜態圈在OpenGL
- 19. opengl中的vbo管理
- 20. OpenGL:用VBO繪製線條
- 21. OpenGL ES 2.0 VBO問題
- 22. 的OpenGL ES 2.0:與VBO
- 23. OpenGL的VBO訪問衝突
- 24. OpenGL VBO存儲和模板
- 25. Qt Opengl VBO數據損壞
- 26. Android OpenGL Vertex Array或VBO
- 27. OpenGL VBO繪畫順序
- 28. VBO位置問題OpenGL,C++
- 29. VBO最佳方法OpenGL
- 30. 使用OpenGL的VBO問題