【发布时间】:2011-02-19 09:41:59
【问题描述】:
我想知道你如何在 directx 中渲染地形。
我听说有人说他们使用的是 RAW 文件,也有人说他们使用的是 .x 文件。我们的方式是什么,为什么它是好的?
【问题讨论】:
我想知道你如何在 directx 中渲染地形。
我听说有人说他们使用的是 RAW 文件,也有人说他们使用的是 .x 文件。我们的方式是什么,为什么它是好的?
【问题讨论】:
许多 3D 引擎使用height maps 来渲染地形,因为它们的空间效率很高(只需要一张光栅图像)。
【讨论】:
我的方法是用我的小波压缩系统压缩一个巨大的纹理 (128Kx128K) 以获得 ~150:1 的压缩率。然后我从磁盘块加载纹理。即,世界被分成多个 256x256 的块(实际上它是一种与相机距离相匹配的 mipmap)。我使用相机位置向前加载相机位置周围的一些块。
然后我计算可见的块并绘制它们。为此,我将高度数据直接用作输入顶点着色器的流。然后我有一个网格,其中顶点位置对应于高度流中的高度位置。然后,我可以简单地将 y 从高度图流中拉出,并将其放置在我的着色器中的 y 位置。
这是一种非常复杂的地形渲染方式,但你确实问过“你”是如何做到的;)
PS 128,000x128,000 的好处是我能以米的精度获得 128 公里的地形:D
【讨论】: