在Unity3D 中编辑地形的另一种方法是通过导入一幅预先渲染好的灰度图来快速地为地形建模,地形上每个点的高度被表示为一个矩阵中的一列值。这个矩阵可以用一个被称为高度图(heightmap)的灰度图来表示。灰度图是一种使用二维图形来表示三维的高度变化的图片,地形高度图建议使用一张长宽相等,并且尺寸为“2n+1”的灰度图,地形会根据该高度图的黑白灰色阶来决定地形的海拔,白色标示最高点,黑色表示最低点,灰色决定介于最低点和最高点之间的高度。通常可以用Photoshop或其他三维软件导出灰度图,灰度图的格式为RAW格式,Unity3D可以支持8位和16位的灰度图。
Unity3D中支持RAW格式的高度图导入,这个格式不包含诸如图像类型和大小信息的文件头,所以易被读取。RAW 格式相当于各种图片格式的“源文件”,它的转换是不可逆的。在Photoshop软件中可以使用滤镜功能制作高度图,接下来根据在Photoshop中制作好的高度图导入Unity3D系统,自动生成地形。
(1)打开工程TerrainDemo,点击Project 窗口“Create”→“Scene”新建一个场景,保存新场景为Terrain2。
(2)点击Project窗口“Create”→“3D Object”→“Terrain”,创建一个新的地形(见图4-4),设置其分辨率为Width:200,Height:600,Length:200,点击Inspector 窗口Terrain组件的“Import Raw...”按钮,打开文件浏览器,找到“terrain.raw”这张高度图并打开,此时会打开高度图的设置面板,如图4-5 所示,其参数列表如表4-2 所示。
图4-4 导入高度图
(www.xing528.com)
图4-5 高度图参数
表4-2 高度图参数列表
(3)一般Unity3D 会自动识别该高度图的信息,所以保持默认值即可,当然,如果用户保存的Raw格式是Windows格式的,必须先把Byte Order设置成Windows,点击“Import”按钮,此时这张高度图已经作用于地形上了,如图4-6 所示。
图4-6 导入高度图地形效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。