OpenGL - 渲染已排序与碎片化的VBO

时间:2015-09-26 16:50:23

标签: performance opengl vertex-buffer

我正在呈现一种旧的游戏格式,世界被分解成小区域。区域顶点按纹理索引排序。所有顶点都被添加到一个巨大的VBO中。我还使用了一个IBO,它创建的每一帧都有纹理索引,这样我就可以在一次调用中渲染每个纹理。

我的问题在于顶点的存储,发送和渲染方式。在某些级别中,有数千个区域,因此如果我渲染每个区域中常见的纹理,它可能是由其他纹理顶点分隔的顶点缓冲区的1000个碎片“部分”。

我一直认为对数组进行排序可能也不错,但是需要大量的代码重写,所以我对任何性能提升背后的理论感兴趣。

  1. 是否必须从VBO的许多不同部分进行渲染会导致问题?
  2. 在我的情况下,对VBO进行排序是否有性能提升?
  3. 我知道glDrawRangeElements可以通过发送开头和结尾以及一些显卡进行优化吗?速度差异是否有任何基准?

0 个答案:

没有答案