1

我想知道你如何在directx 中渲染地形。
我听说有人说他们使用的是 RAW 文件,也有人说他们使用的是 .x 文件。我们的方式是什么,为什么它是好的?

4

2 回答 2

1

许多 3D 引擎使用高度图来渲染地形,因为它们的空间效率高(只需要一张光栅图像)。

于 2011-02-19T10:17:52.547 回答
1

我的做法是用我的小波压缩系统压缩一个巨大的纹理(128Kx128K)以获得~150:1的压缩然后我从磁盘块加载纹理。即,世界被分成多个 256x256 的块(实际上它是一种与相机距离相匹配的 mipmap)。我使用相机位置向前加载相机位置周围的一些块。

然后我计算可见的块并绘制它们。为此,我将高度数据直接用作输入顶点着色器的流。然后我有一个网格,其中顶点位置对应于高度流中的高度位置。然后我可以简单地将 y 从高度图流中拉出并将其放置在我的着色器中的 y 位置。

这是一种非常复杂的地形渲染方式,但您确实问过“您”是如何做到的;)

PS 128,000x128,000 的好处是我以米的精度获得了 128 公里的地形:D

于 2011-02-20T08:52:57.747 回答