Unity 3D 使用高度图创建地形

2020-07-13 16:27 更新

在 Unity 3D 中编辑地形有两种方法:

  • 通过地形编辑器编辑地形。

  • 通过导入一幅预先渲染好的灰度图来快速地为地形建模。

地形上每个点的高度被表示为一个矩阵中的一列值。这个矩阵可以用一个被称为高度图(heightmap)的灰度图来表示。

灰度图是一种使用二维图形来表示三维的高度变化的图片。近黑色的、较暗的颜色表示较低的点,接近白色的、较亮的颜色表示较高的点。

通常可以用 Photoshop 或其他三维软件导出灰度图,灰度图的格式为 RAW 格式,Unity 3D 可以支持 16 位的灰度图。

Unity 提供了为地形导入、导出高度图的选项。

  • 单击 Settings tool 按钮,找到标记为 Import RAWExport RAW 的按钮。

  • 这两个按钮允许从标准 RAW 格式中读出或者写入高度图,并且兼容大部分图片和地表编辑器。

案例构思

在 Unity 3D 中支持 RAW 格式的高度图导入。

RAW 格式相当于各种图片格式的“源文件”,它的转换是不可逆的。

注:

  • 在 Photoshop 软件中可以使用滤镜功能制作高度图。

本案例根据在 Photoshop 中制作好的高度图导入 Unity 3D 系统,自动生成地形。

案例设计

本案例通过 Photoshop 中制作好的高度图在 Unity 3D 中创建一个简单的地形,在地形参数列表里设置导入高度图的信息,导入的高度图地形效果如下图所示。

案例实施

  1. 创建地形。执行 GameObject3D ObjectTerrain 菜单命令。

  1. 在 Inspector 面板中单击 Import Raw 按钮添加地形,如下图所示。

  1. 设置地形参数,如下图所示。

  1. 进行测试,即可观察到基于高度图创建出来的地形效果,如下图所示。

参数列表

参数 含义 描述
Depth 深度 根据文件格式设置,可以是8位或16位。
Width 宽度 设置高度图的宽。
Height 高度 设置高度图的高。
Byte Order 字节顺序 根据文件格式设置,可以是MacWindows
Terrain Size 地形大小 定义地形的大小。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号