用Unity为行星表面创建地形

2015年01月17日 16:38 0 点赞 0 评论 更新于 2025-11-21 14:37

在熟悉Unity之后,我们就需要动手练习一些小项目。今天,我将带领大家学习如何为行星表面创建地形。

虽然Unity自带了一些地形制作工具,但这些工具存在一定的局限性。为了获得更加美观、真实的场景,我们将使用其他工具来完成地形创建。

地形基本形状的制作

地形的基本形状通常在Mudbox或其他能够导出高度地图的绘图软件中制作。我们会在机器世界中使用高度地图,同时借助一个地形渐进制作软件来增加更加逼真的腐蚀效果。

创建基本形状

首先,我们需要将一个简单的平面模型导入到Mudbox中。这里我们使用一个512 * 512元素和8个分量的OBJ文件。你可以使用任何3D模型软件创建平面,也可以从这里下载。

详细工作流程

  1. 打开Mudbox并设置变量
    • 调整FOV视角层的FOV参数,使其与Unity中的摄像机FOV值相匹配。这样可以获得更好的刻度调整和均衡的视角。
    • 将工具的雕刻值方向仅设置为Y轴。因为高度地图仅存储高度信息,我们只需让多边形在Y轴上向上移动。
    • 为雕刻工具选择一个合适的邮戳图片,例如Bw_cliffFace.tif邮戳在岩石表面的雕刻效果不错。此步骤也可以在制作完基本形状后进行。
  2. 开始雕刻地形
    • 开始在Mudbox中雕刻地形,直到你对结果满意为止。完成后,地形应呈现出预期的效果。
  3. 导出高度地图
    • 为了在机器世界中使用地形的高度地图,我们需要导入简单的屏幕OBJ文件到场景中,将高多边地形数据映射到平、低多边的平面。
    • 依次点击“UV和地图” -> “提取纹理地图” -> “新操作”。
    • 选择移置地图并调整以下参数:
    • 目标模型:添加低多边平面。
    • 源模型:添加高多边平面地形。
    • 搜索距离:通过最佳猜想试验进行调整,如果在高度地图中出现非自然的情况,则进一步调整该参数。
    • 图片尺寸:选择2048 * 2048分辨率。
    • 基本文件名字:选择你的文件名字,并选择TIFF 16位整数格式。
    • 点击“提取”按钮制作高度地图。制作完成后,你将得到一个2048 * 2048的图片。

在机器世界中添加地形

打开机器世界并设置一些节点。在处理各种参数时,建议将分辨率设置为较低的值(513 513),这样可以加快构建时间。当你对地形效果满意后,可以将分辨率增加到2049 2049。你可以在项目设置菜单中更改分辨率。机器世界为每个节点提供了许多预设,你只需尝试不同的设置即可。

创建新的高度地图

  1. 从生成器列表中选择一个文件输入节点,双击该节点并选择之前导出的TIF高度地图文件。
  2. 将不同规格的节点连接到文件输出模块的高度域。
  3. 最终将输出列表中的高度输出节点连接到你更改环节中最后一个模块的高度域输出。
  4. 双击高度输出节点,选择一个文件名字,并选择RAW16作为文件格式,将文件后缀名从.r16改为.raw。
  5. 点击“写出到硬盘”。

创建splat地图

Splat地图根据地形的水平高度对其进行纹理化。因此,我们需要将地形的高度信息分离到单独的通道,以获取其RGBA值。我们将使用选择器列表中的“选择坡度”和“选择高度”模块。

  1. 坡度选择器可以只选择给定高度范围内的数据来配置地形数据。当最大值和最小值与其他坡度选择器重叠时,能获得最佳效果。
  2. 由于选择器只有一个高度位域输出,我们需要使用合并器列表中的通道合并,将高度位域连接到通道合并器输入的红、绿、蓝通道。
  3. 最后,连接来自输出列表中的位图输出节点,将splat地图导出为一个16位PNG图片。

创建标准地图

为地形添加结构的一个好方法是创建标准地图。我们从转换列表中添加一个标准地图制作节点,然后将其连接到一个位图输出节点。

创建颜色地图

我们使用转换列表中的颜色节点来制作颜色地图。具体步骤如下:

  1. 通过选择器列表中的选择顶点节点导出一个曲率地图。
  2. 为了导出图片文件,连接一个高度输出节点和一个位图输出节点。
  3. 使用Photoshop将曲率地图和颜色地图合并,不断调整透明度和混合模式,直到你满意为止。

如果你想更深入地了解使用Mudbox创建地形,CryEngine和UDK中有更详细的教程。处理完毕后,你应该会得到四个图片(颜色地图、曲率地图、标准地图、splat地图)和一个高度地图的源数据文件。需要注意的是,为了使用ats颜色地图终极地形渐变器,你需要将这些图片在Y轴翻转。

将地形和地图导入到Unity中

  1. 打开Unity并将地图添加到项目中。此外,还需要至少添加四个纹理,以便在地形中使用。
  2. 你可以从Unity素材商店花费10美金购买ats颜色地图终极地形渐变器,该工具非常实用。
  3. 通过“游戏对象” -> “创建其他” -> “地形”创建一个新的地形。
  4. 在新创建的地形对象的设置列表中,将高度地图的分辨率设置为2049,并点击“导入源”按钮导入高度地形的源文件。注意,必须选择Windows作为字节顺序,以防止设置为Mac,否则地形会出现混乱。

使用ats颜色地图顶级地形渐变器

启动ats颜色地图渐变器的过程相对复杂,但该工具包中的文档非常详细。创建地形的最佳方法是遵循手册中的步骤,以下是建立渐变器的大致步骤:

  1. 至少添加四个地形纹理到地形着色工具中。
  2. 在地形中添加CustomTerrainScriptColorMapUltraU4.cs脚本。
  3. 在添加颜色地图脚本时,设定颜色地图,并使用地形上的新编辑器处理标准地图。
  4. 添加splatmap并选择应用splat地图。为防止处理splat地图格式时出错,你可以在Unity中更改图片文件的导入格式。
  5. 通过添加地形纹理的标准地图到槽中创建合并的标准地图,然后导出新生成的合并标准地图。
  6. 为每个纹理无缝混合生成平均的颜色。
  7. 创建一个新材料的地形。

现在,你应该在Unity中得到一个不错的地形了。如果在使用ats Colormap UL TRA地形渐变器过程中遇到问题,请查看工具包中的用户手册,其中包含详细的说明,应该可以帮助你解决任何问题。

作者信息

feifeila

feifeila

共发布了 3994 篇文章