Unity地形系统

Unity2019地形系统学习1 创建和编辑地形1.1 地形系统使用1.1.1 Create Neighbor Terrains(添加相邻地形)1.1.2 Paint Terrain(雕刻绘制地形)1.1.2.1 Raise or Lower Terrain(绘制地形高度贴图)1.1.2.2 Paint Holes(挖洞)1.1.2.3 Paint Texture(绘制纹理)添加Terrain Layer(地形图层)Terrain Layer(地形图层)参数调节1.1.2.4 Set Height(设置高度
摘要由CSDN通过智能技术生成

1 创建和编辑地形

在菜单右键Create->3D Object->Terrain创建地形,会生成一个平面。可以通过Inspector 面板提供的工具调整地形参数,制作出山峰、山谷、平原、峭壁等地形。
新建地形

1.1 地形系统使用

1.1.1 Create Neighbor Terrains(添加相邻地形)

Create Neighbor Terrains工具
选中创建邻近地形,在Scene面板中点击四周绿色的线框可以在线框处创建另一块地形(新地形被创建出来后与模板地形不处于同一块地形中),并新建一个新的TerrainData资源,编辑器会默认将新创建的地形区块放在与其邻近地形区块所在的那个组中,并复制邻近区块的设置给新的地形。添加新地形
当勾选Fill Heightmap Using Neighbors时表示使用已经存在且与其相邻的地形高度图交叉混合来填充新地形的高度贴图。Fill Heightmap Address Mode表示选择交叉混合地形高度图的模式。

  • Clamp
    使用Clamp生成的新区块的高度图只与其相邻地形区块的边缘高度有关
  • Mirror
    使用Mirror生成的新区块的高度图与每一个与其相邻的地形区块的高度图有关。因为Unity会先为每个相邻地形区块生成镜像,并对这些区块的高度贴图进行交叉混合以生成新区块的高度贴图。

请添加图片描述

Unity在生成的地形区块的Terrain Settings中默认勾选Auto Connect。启用Auto Connect后地形系统会自动管理相邻地形区块之间的连接,并且区块会自动连接到具有相同Grouping ID的所有邻居。

如果更改地形区块的Grouping ID属性,或者禁用具有同一个Grouping ID的区块的Auto Connect属性,可能会丢失区块之间的连接。断开连接的两个相邻区块,若具有相同的Grouping ID 且都启用了Auto Connect 的情况下,可使用Reconnect按钮重新创建地形区块之间的连接。
请添加图片描述

启用Auto Connect后修改相邻区块之间的区域,两块相邻的地形区块会无缝修改,不会发生边沿“断开”的情况,关闭Auto Connect后修改相邻部分会发生边缘部分断裂。
边沿断裂

1.1.2 Paint Terrain(绘制地形)

使用这个工具修改地形的高度、纹理,设置地形高度、平滑高度及柔化地图特征等,还能标记画笔形状。
请添加图片描述

1.1.2.1 Raise or Lower Terrain(升高或降低地形)

使用笔刷工具将地形升高或降低,用来建造地形的整体走向,包括凸起的山峰,凹陷的山谷等,都由这个工具构建。注意:地形高度最低为0,不能降到负数,要建造山谷需要将地形整体高度升高后,在山谷的位置使用笔刷工具降低高度。

操作方式:单击鼠标左键并在地形对象上拖动光标以提高其高度,按住 Shift 键的同时单击并拖动可降低地形高度。

在Brushes选项中选择要使用的笔刷形状。使用 Brush Size 滑动条修改画笔的覆盖范围,大范围用于地形基础形状的构建,小范围用于细节的刻画。使用Opacity 滑动条修改将画笔应用于地形时的强度,Opacity 值为 100 表示将画笔设置为全强度,值越高改变速度越快,幅度越大。
请添加图片描述
使用不同的画笔可创建各种效果。例如,可使用软边画笔增加高度,创建连绵起伏的山丘,然后使用硬边画笔降低一些区域的高度,切割出陡峭的悬崖和山谷。
连绵起伏的山丘被陡峭的悬崖分开
还可以使用高度贴图来修改地形的形状、高度等,具体内容在导入和导出高度贴图中。

1.1.2.2 Paint Holes(挖洞)

使用Paint Holes 工具可以在地形区块中挖一个洞出来,洞的形状、大小由自己使用笔刷工具去抠,适用于在地形中绘制洞口、悬崖等。
请添加图片描述
操作方式:选择笔刷后,在地形上单击并拖动鼠标挖洞,在按住 Shift 键的同时单击并拖动可从地形中抹去孔洞。可通过修改笔刷工具的大小和强度来调整挖洞的速度。(不知道怎么去除边缘锯齿)
在这里插入图片描述
在使用光照、物理和导航网格(NavMesh)烘焙地形时,Unity会丢弃洞所在区域的地形信息,不影响光照、地形碰撞体和烘焙导航网格的准确性。

为了支持物理碰撞体,孔洞的遮罩纹理的分辨率等于地形高度贴图的分辨率 - 1。

1.1.2.3 Paint Texture(绘制纹理)

可使用笔刷工具将选定纹理(如草、雪、沙等)绘制到地形。如草地、岩石等纹理。但如果地形中不存在Terrain Layer,Paint Texture工具将没有效果,因为没有可选中的纹理,使用笔刷工具绘制时使用的是Unity默认的纹理。要想将纹理绘制到地形上,首先得将纹理添加到地形中作为Terrain Layer,然后才能使用笔刷工具进行纹理绘制。
Paint Texture工具
操作方式: 要绘制地形图层到地形,需要先选择要用于绘制的画笔及要绘制的纹理,然后调整画笔的 Brush Size(尺寸) 和 Opacity(应用效果的强度)。最后,在地形上单击并拖动来绘制纹理。可将画笔的Opacity 减小后在区块边界上进行绘制,使相邻区域的边界过度更自然。但地形系统会将选定的地形图层添加到绘制的任何地形,因此可能会影响上述性能。
在这里插入图片描述

1.1.2.3.1添加Terrain Layer(地形图层)

在Terrain Layer中处于首位的将会默认填充整个地形。一个Terrain对象可添加多个地形图层。但是,每个区块支持的地形图层数取决于具体渲染管线。

添加Terrain Layer有以下三种方法:

  • 选择Edit Terrain Layers->Create Layer,选择一张纹理图片后即会添加一个Terrain Layer到资源面板,纹理名称及路径可修改。
    在这里插入图片描述

  • 在Assets面板创建一个Terrain Layer并修改名称,在Inspector面板修改其Diffuse(默认显示图片),normal Map(法线贴图)及其它配置(也可添加后修改),在Edit Terrain Layers->AddLayer中选择新创建的Terrain Layer即可将其添加到纹理面板中。

  • 添加已有纹理到纹理面板 Edit Terrain Layers->AddLayer,选择已有的纹理即可。
    在这里插入图片描述

Terrain Layer(地形图层)参数调节

每个Terrain Layer(地形图层)都可以在其Inspector面板或其添加到的地形对象的Inspector面板中调节相应参数。

  • Inspector面板中
    在这里插入图片描述

  • 其添加到的地形对象的Inspector面板中,选中要调节参数的地形图层,选择下拉三角形,打开参数调节面板。
    在这里插入图片描述
    参数

  • Diffuse
    表示地形图层的显示纹理

  • Normal Map
    法线贴图纹理 (Normal Map Texture) 包含地形图层的法线信息,Unity用于光照计算。法线纹理可以使纹理具有凹凸感,看起来不是一张图片贴上去的,更真实自然。
    如果没有分配法线贴图纹理并启用实例化,地形将使用从地形高度贴图生成的法线。如果在地形上禁用实例化,则内置的地形材质使用从地形几何体生成的法线(即使在地形图层上分配了法线贴图纹理也是如此)。

  • Normal Scale
    如果设置了法线贴图纹理,地形图层设置中将出现一个 Normal Scale字段 ÿ

  • 15
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值