我试图理解GCW Zero OpenGL指令中给出的“性能提示”的含义:
- 始终使用顶点缓冲区对象(VBO)
- 将顶点放入一个交错的VBO,而不是多个VBO
这是否意味着我应该将所有我的对象放入一个顶点缓冲区(并记住与每个对象有关的开始/结束索引)。或者它只是意味着每个对象应该在一个顶点缓冲区中(而不是每个属性的缓冲区)。
在同一个顶点缓冲区中有多个对象是否正常?
答案 0 :(得分:3)
这是否意味着我应该将所有我的对象放入一个顶点 缓冲区(并记住与每个相关的开始/结束索引 宾语) 或者它只是意味着每个对象应该在一个对象中 顶点缓冲区(而不是每个属性的缓冲区)。
这个"表现提示"对多个物体一无所知。它说的是你应该使用交错属性数组将所有属性放入同一个VBO中。这可能是最有效的缓存策略,并且在一般情况下是合理的建议。
放置多个对象也很常见,特别是如果它们只有相对较少的顶点。您可以保存很多状态切换,理想情况下甚至可以通过这种方式绘制调用。但当然,这取决于场景。将事物组合到同一个VBO中对于经常被绘制在一起的静态对象最有用。