0

我正在绘制由数千个立方体组成的表面。但是,当我朝正 Z 方向看时 - 那就是光线所在的位置,我会得到低 fps 和伪影。这是我在负 Z 方向 1 看时的样子: 这是我在 Z 正方向看时的样子,也显着降低了 fps: 1

4

2 回答 2

3

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

于 2013-10-04T17:32:21.717 回答
0

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

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

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

于 2013-10-04T18:10:02.610 回答