地形系统

地形系统以一种高效的方式来展示大自然的山川地貌。开发者可以很方便的使用画刷来雕刻出盆地、山脉、峡谷、平原等地貌。

terrain

创建地形

创建地形需要以下步骤:

  1. 层级管理器 中点击鼠标右键,在弹出菜单中点击 创建 -> 地形 来创建地形节点(地形节点可移动,但不支持旋转与缩放)。

    create terrain

  2. 资源管理器 中点击鼠标右键,在弹出菜单中点击 创建 -> 地形 来创建地形资源。

    create terrain asset

地形组件属性

参数说明
Asset地形资源
EffectAsset地形特效资源
ReceiveShadow是否接受阴影
UseNormalMap是否使用法线贴图
UsePBR是否使用物理材质

使用

点击创建后的地形节点,此时在 属性检查器 中可以看到 cc.Terrain 地形组件,将已经创建好的地形资源拖拽到地形组件中的 Asset 属性框中。

terrain inspector

编辑

地形资源设置完成后会在 场景编辑器 的右下角弹出 cc.Terrain 编辑面板,Cocos Creator 中的地形编辑主要包括三大功能:管理(Manage)、雕塑(Sculpt)、涂料(Paint)。可以通过点击三个 Tab 标签页来切换功能。

terrain component

除了编辑面板,也可以通过 场景编辑器 左上角的工具来切换功能:

  • 1 — 对应 管理 功能
  • 2 — 对应 雕塑 功能中的 Bulge(隆起)画刷类型
  • 3 — 对应 雕塑 功能中的 Sunken(凹陷)画刷类型
  • 4 — 对应 雕塑 功能中的 Smooth(平滑)画刷类型
  • 5 — 对应 涂料 功能

管理(Manage)

用于调整地形的各种参数。Tile 是地形的最小单位,Tile 组成地形块(Block),目前一个 Block 由 32x32 个 Tile 组成,一个地形至少由 1 个 Block 组成。

edit layer

参数说明
TileSize地形 Tile 的大小,目前一个地形块由 32 x 32 个 Tile 组成,所以一个地形块的边长是 32 x TileSize
BlockCount地形块在两个维度上的数量(注意:若该值设置过大会造成顶点数过多,导致卡顿)
WeightMapSize权重图大小
LightMapSize光照贴图大小

雕塑(Sculpt)

用于改变地形的形状。

edit layer

参数说明
BrushSize画刷的大小
BrushStrength画刷的力度
BrushMode画刷类型,包括 BulgeSunkenSmooth
Brush自定义画刷样式,通过选取样式图片生成自定义画刷

可通过 鼠标左键 控制地形的 隆起,通过 Shift + 鼠标左键 控制地形的 凹陷。而隆起/凹陷的操作往往会使地形看上去很尖锐,此时就可以使用平滑功能进行过度。

涂料(Paint)

用于描绘地形的纹理

edit layer

参数说明
Terrain Layer设置地形的 Layer。详情可参考下方的 Layer 编辑
BrushSize画刷的大小
BrushStrength画刷的力度
BrushFalloff画刷衰减度,决定了画刷边缘的锐利程度。
0.0 表示画刷在整个范围内都有完全效果(全部被当前层纹理覆盖),具有尖锐的边缘。
1.0 表示画刷仅在它中心具有完全效果,在到达边缘的过程中效果逐渐衰减
Brush自定义画刷样式,通过选取样式图片生成自定义画刷

Layer 编辑

edit layer

点击右上方的 +/- 按钮可以添加/删除 Layer(最多支持 4 层 layer)。选中某个 Layer 后就可以对 Layer 及其纹理进行编辑。

参数说明
Terrain Layer设置当前 Layer 的纹理
NormalMap设置当前 Layer 的法线贴图,需要勾选地形组件的 UseNormalMap 属性
Metallic设置当前 Layer 的金属特性 (主要指光滑程度)
Roughness设置当前 Layer 的粗糙程度
TileSize纹理的平铺大小,值越小会在同样大小的区域内进行更多次的平铺