【问题标题】:What is your way of rendering terrains?你渲染地形的方式是什么?
【发布时间】:2011-02-19 09:41:59
【问题描述】:

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

【问题讨论】:

    标签: c++ directx terrain


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 不是米精度吗? 128km = 128,000m
      • @Xanatos: 好点 ;) 我一直想使用几何着色器来分形生成每三次近距离的毫米级细节。
      猜你喜欢
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2014-05-21
      • 2019-02-15
      • 2011-10-30
      相关资源
      最近更新 更多