如何有效地对齐 VBA 中的顶点以进行索引渲染?

Posted

技术标签:

【中文标题】如何有效地对齐 VBA 中的顶点以进行索引渲染?【英文标题】:How to efficiently align vertices in VBO for indexed rendeing? 【发布时间】:2017-03-19 06:33:51 【问题描述】:

我有一个代表高度图的 1 050 625 个顶点的 VBO。我使用 GL_TRIANGLE_STRIPS 绘制网格,通过截头剔除的 32*32 单元格块和索引渲染。

我是否应该关心我的顶点在 VBO 中在性能方面的对齐方式?我的意思是有关于不同元素之间的距离如何影响性能的任何信息,例如:[100,101,102] 或 [10,1017,2078]?

【问题讨论】:

你的意思是一组或三角形的位置是否相距很远。与彼此靠近的更接近的三角形相比。这是否会对性能产生影响? 不,我的意思是 VBO 中单个三角形的不同元素之间的距离 【参考方案1】:

索引之间的距离会影响要读取的内存位置。这种影响与缓存内存有关。如果该位置不在当前缓存中,则必须从主存储器中读取。 至少在理论上。在实践中,它取决于硬件和驱动程序的实现。缓存大小和总线速度有影响。

首先,大小低于几 MB 的任何内容都应该是最快的解决方案。

无论如何,当性能很重要时,了解它的真正方法是在可能的情况下在不同的硬件中对不同的选项进行基准测试。

【讨论】:

我认为最好先问清楚,然后再开始大规模重构以检查差异

以上是关于如何有效地对齐 VBA 中的顶点以进行索引渲染?的主要内容,如果未能解决你的问题,请参考以下文章

动态渲染顶点之间的线条OpenGL

如何对聚合进行过滤以有效地使用索引?

如何有效地渲染具有多边形边缘的网格表面?

iOS ES 2 从 RAM 渲染 OK,VBO 中的顶点 OK,但 BO 中的索引失败

opengl vbo 纹理

如何以与 OpenGL 中的点精灵相同的方式渲染屏幕对齐的矩形