所以我了解如何使用顶点缓冲区对象,并且它比立即模式绘图提供了很大的性能提升。我将绘制很多 2D 四边形( Sprite ),我想知道我是否应该为每个四边形创建一个 VBO,或者创建一个 VBO 来保存所有数据?
最佳答案
您不应该为每个 Sprite /四边形使用新的 VBO。因此,在您的情况下,将它们全部放在一个 VBO 中将是更好的解决方案。
但总的来说,我认为这不能用一句话来回答。
为每个 Quad 创建一个新的 VBO 不会给你带来真正的性能提升。如果这样做,会浪费很多时间 glBindBuffer
要求切换 VBO。但是,如果您创建包含过多数据的 VBO,您可能会遇到其他问题。
小型 VBO:
大型 VBO:
drawArrays()
渲染大量对象要求最佳性能。 以下链接可以帮助您:
Vertex Specification Best Practices
关于opengl - 我使用多少个 VBO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661629/