Unity Terrain 学习笔记

记录学习Terrain过程

一、前期准备

本次学习基于以下两个B站视频进行学习整理

使用 unity Terrain Tools 创建漂亮的地形_哔哩哔哩_bilibili

【为游戏制作户外场景】保姆级Unity Terrain教程 01: 安装Terrain Toolbox_单机游戏热门视频 (bilibili.com)

1.1 Terrain Tools

Unity自带Terrain Editor模块,创建Terrain可在Hierarchy面板中右键→3D Object→Terrain,但是如若想有更好的控制并创造更好的地形效果,Unity 2019.1以上可在Package Manager中导入Terrain Tools包。

 导入Terrain Tools前,Paint Terrain 子模块仅有如下几个子功能

当导入Terrain Tools包后,相应面板功能增多。

1.2 Terrain Sample Asset Pack

地形工具样本资源包 (Terrain Tools Sample Asset Pack) 包含一系列资源,可帮助有兴趣利用 Unity 不断扩大的地形系统的用户进行开发。其中包括 35 种地形笔刷和多种优质地形功能,如非常适合冲压的峡谷、山脊和山脉。还有 6 种具有高质量 PBR 即用纹理的地形层,可将泥土、苔藓、岩石、沙子、碎石堆和雪绘制到地形上。

资源导入后,整个资源按文件夹分类。文件中含有一份PDF的ReadMe文档,用于资源的学习。

Prefab为花草树木的预制体,Material 和Model主要存放Prefab用到的模型网格和材质球。Terrain Brush为在手动Paint Terrain时会用到的笔刷。Terrain Layers中存放已经设置好的.terrain layer文件,每个layer中包含了用到的Diffuse、Normal、Mask贴图。Textures文件夹则包含了整个资源中用到的材质如花草树木、Terrain layer、高度贴图等用到的所有贴图文件。

该资源包会有一些依赖,例如Shader Gragph,当导入后可能会有Error报错,可在Package Manager中手动添加。

二、使用过程

2.1 Terrain Toolbox

在Window →Terrain→ Terrain Toolbox中打开地形工具箱面板,将面板吸附至右侧面板

Create New Terrain 栏目下个人比较关心的几个参数

1.Grouping ID 

当勾选下方Replace Terrains时,每次点击Create,相同Grouping ID的会被新生成的覆盖,只有改变Grouping ID时才会在Hierarchy栏中新生成一个Object。

2.Import Heightmap

利用Texture →Hightmaps文件夹中的Hightmap直接生成地形,Hightmap为单通道的灰度图,越白的位置表明地形高度越高,因为是单通道图所以在Unity中仅占用R通道显示为红色。

2.Hightmap Resolution

这个指生成Terrain的单边顶点数,将窗口的Draw Mode 切换成WireFrame可以看出这个区别,当Resolution为33时,绘制地形过程中单边顶点数不会超过33,而切换为129时单边细分更多,地图也能显示出更多细节。图中展示的是利用Height map直接生成地形时分辨率的影响,对于用笔刷画地形也同样,当此处设置的分辨率较小时,笔刷Raise or Lower Terrain所绘制出的地形像素化严重,因此需要提前确定好Resolution

2.2 Terrain组件五个基本工具

1.Creatro Neighbor Terrains

生成已有Terrain的相邻块

2.Paint Terrain
a.Raise or Lower Terrain

最常用的Raise or Lower Terrain,笔刷除默认外下载的资源包中Brush文件夹中也提供不少

相比于未加载Terrain Tools,此时面板中多了对于笔刷强度(Strength)、大小(Size)、旋转(Rotation)、间隔(Spacing)等的详细控制,每个控制下有Jitter(抖动)来实现该项的随机性控制。

快捷键强度(A)、大小(S)、旋转(D)、间隔(Spacing)、平滑(Shift,按住),如下所示为平滑后、反向(Ctrl,按住)。

b.Sculpt→Noise

切换到Sculpt→Noise,选取噪声的模式,可在Terrain上绘制一些噪声细节,效果如图,可以调节笔刷强度控制其噪声强度效果。

c.Paint Texture

在Terrain Layer文件夹中选择相应的layer文件,每个Layer主要包含三张贴图,分别为Diffuse、Normal以及Mask。同时注意调整Tilling Size,这样才能在地图上看到Texture相应的细节。对于Mask贴图,RGBA中分别包含了不同的信息。

3. Paint Tree

种树可以通过两种方式,方式一:Mass Place Trees,通过给定树的数量进行自动分布;方式二:通过笔刷在需要的地方绘制。

但项目中下载的Terrain Sample Asset Pack中并没有给出树木的预制体,草类的预制体因为material 中shader不符无法在Paint Tree模块使用。

通过导入下载的Terrain Assest Package,里面有预制好的14种树木,

 

通过Mass Place Tree放置后如下

当添加完成后可以通过笔刷在需要的位置添加,在不需要的位置进行减去操作。

4. Paint Details

细节可以通过两种方式绘制,一种为贴图, 一种为网格。不仅可以补充草的细节,也可以通过Detail Mesh导入一些岩石之类的物体。同时注意修改镜头距离和草的尺寸,否则无法看到这些细节的生成

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值