看向某个方向时,Opengl低FPS

时间:2013-10-04 16:09:08

标签: opengl

我正在绘制由数千个立方体组成的表面。然而,当我在正Z方向看时 - 那就是光线所在,我得到了低fps和伪影。 这是我在负Z方向看时的样子: 1 当我正向Z方向看时,它看起来也是如此,也显着下降了fps: 1

2 个答案:

答案 0 :(得分:3)

您可能依赖于渲染多维数据集的顺序。这可以解释为什么看+ Z或-Z之间存在差异。渲染回到前面时,渲染每个立方体的每个片段。当使用深度测试从前到后渲染时,大多数片段将被丢弃。至于你所看到的人工制品,可能是Z战斗,但这是一个长镜头。

答案 1 :(得分:0)

性能下降有多糟糕?如果对几何进行Z-only预传,跳过写入颜色缓冲区(并使用非常简单的直通片段着色器),则可以在几何体排序不良/未排序的情况下大大提高性能。填充率有限。这只会在您进行复杂的片段处理时有所帮助;它引入了两倍的顶点变换开销,因为你基本上绘制了两次。您的情况可能是顶点或片段绑定,因为组合立方体的表面并不是渲染大平面表面的最有效方法。

我的另一个建议,因为你提到渲染一个由“数千个立方体”组成的场景将是实现类似于体素折叠的东西。此示例中的所有立方体似乎都在同一平面中,您可以轻松地将这些面的集合替换为具有较少面并组合相邻立方体的多维数据集。 Minecraft通过使用贪婪的网格划分算法定期重新网格化场景的动态更新部分来做到这一点。

当然,空间分区是另一个问题,但我假设你已经有某种系统就地了?

相关问题