我刚刚尝试更新一个顶点缓冲区对象(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问题