OpenGL 2.1中的顶点缓冲区对象

Min*_*wth 7 c opengl vbo

(我指定了2.1,因为我的笔记本电脑不会超过那个版本.我可能已经完成了这个,因为3.x和on引入着色器是强制性的?).

感谢维基百科:http://en.wikipedia.org/wiki/Vertex_Buffer_Object我开始意识到使用VBO是多么简单(我仍然对IBO没有积极的看法?).到目前为止我所理解的是使用它们的主要原因是由于数据现在存储在视频存储器中而获得的性能提升.

我想知道的是我应该如何在实际环境中使用它们.例如,我所看到的所有内容都是设置一个顶点缓冲区对象并绘制一个三角形或一个立方体等.如果我想绘制2个或更多,该怎么办?我是否为要绘制的每个实体设置了一个新的VBO?或者我是否神奇地附加到我早期设置的静态VBO?

Chr*_*ica 5

这取决于,因为问题相当广泛.

使用一个VBO作为顶点属性,一个用于每个模型/对象/实体/网格的索引是直接的方法.您可以将所有模型存储在单个VBO中,因此您不必经常绑定缓冲区,但是当这些模型不是静态时会带来其他问题.此外,您可以为每个对象使用多个VBO,可能一个用于动态数据,一个用于静态数据,或者一个用于几何数据(位置...),一个用于材料相关数据(texCoords ...).

每个对象使用一个VBO可能具有它(dis)的优点,并且使用单个巨大的VBO可能不是一个好主意.它取决于具体的应用程序以及这些概念在其中的适用程度.但是从一开始,直接的每个VBO对象方法并不是一个坏主意.只是不要每个三角形使用一个VBO;)