VBO 中的交错是帮助还是阻碍性能?

Posted

技术标签:

【中文标题】VBO 中的交错是帮助还是阻碍性能?【英文标题】:Does interleaving in VBOs help or hinder proformance? 【发布时间】:2011-01-11 06:48:05 【问题描述】:

使用 OpenGL VBO 时,您可以交错数据

例如,您甚至可以将顶点数据与供 CPU 而不是 GPU 使用的其他数据交错。

交错对主流独立显卡和集成显卡的性能有帮助还是有阻碍?

【问题讨论】:

【参考方案1】:

一般的答案是它通常会有所帮助,但并非总是如此。

例如,如果您首先执行 z-only pass 以降低填充率,那么交错所有其他属性只会通过拉入未使用的数据来给缓存带来压力。在这种情况下,交错除位置之外的所有内容可能是有意义的。或者你可以有两个顶点数组,一个包含所有属性,一个只包含位置。

除非我有充分的理由不这样做,否则我倾向于交错所有内容。

【讨论】:

【参考方案2】:

我不记得确切的数字,但在我的英特尔芯片组上,它确实略微提高了帧速率,可能是 10 %。数据包含顶点、纹理坐标和法线。

【讨论】:

以上是关于VBO 中的交错是帮助还是阻碍性能?的主要内容,如果未能解决你的问题,请参考以下文章

具有浮点和字节的交错式 VBO

切换到使用交错 VBO - 编译但没有绘制 - opengl es 2.0

C++ 和 OpenGL,VBO 顶点与骨骼信息交错

交错的 VBO 导致 glDrawArrays() 错误

opengl交错vbo不渲染到屏幕

OpenGL,交错的 VBO(顶点、法线和颜色)与光