【问题标题】:Meaning of "Single Vertex Buffer"“单顶点缓冲区”的含义
【发布时间】:2014-08-10 08:12:16
【问题描述】:
我试图理解 GCW Zero OpenGL 指令中给出的“性能提示”的含义:
- 始终使用顶点缓冲区对象 (VBO)
- 将顶点放入一个交错的 VBO,而不是多个 VBO
这是否意味着我应该将所有我的对象放入单个顶点缓冲区(并记住与每个对象相关的开始/结束索引)。还是仅仅意味着每个对象都应该在一个顶点缓冲区中(而不是每个属性的缓冲区)。
在同一个顶点缓冲区中有多个对象是否正常?
【问题讨论】:
标签:
opengl
graphics
opengl-es
gcw0
【解决方案1】:
这是否意味着我应该将所有我的对象放在一个顶点中
缓冲区(并记住与每个缓冲区有关的开始/结束索引
目的)
还是仅仅意味着每个对象都应该在一个
顶点缓冲区(而不是每个属性的缓冲区)。
这个“性能提示”没有提到多个对象。它说的是您应该使用交错的属性数组将所有 属性 放入同一个 VBO。这可能是缓存效率最高的策略,也是一般情况下的合理建议。
放置多个对象也很常见,尤其是当它们只有相对较少的顶点时。您可以节省很多状态开关,理想情况下甚至可以通过这种方式绘制调用。但这当然取决于场景。将事物组合到同一个 VBO 中对于经常被绘制在一起的静态对象最有用。