交互媒体设计教案Unity3D游戏开发征服Unity3d

Unity3D自带功能:地形(Terrain)

2017-07-29  本文已影响950人  shimmery

Unity3D中的地形类似于Maya中使用置换贴图来变形高段数的多边形平面,其原理是自动创建一个中等多边形密度的mesh plane(多边形平面),然后指定一张16bit的灰阶图作为height map(高差图),并根据mesh各个顶点所对应的灰度数值沿着Y轴改变该顶点的高度,形成高低起伏的复杂地形。

Unity3D内置了一套简单的brush(笔刷)工具来方便用户对地形物体的编辑修改。

通过菜单GameObject > 3D Object > Terrain可以创建一个Terrain (地形)。


Terrain Settings

Terrain Settings是对Terrain整体的参数设置面板。

最上面的一排按钮分别用来对地形及植被进行“刷制”的工具面板切换,最右边的Terrain Setting面板是针对地形整体的设置,这里挑一些常用的重点的来讲:

要注意的是,Heightmap Resolution是指水平方向的分辨率,而不是地形的垂直分辨率,地形垂直分辨率取决于高差图的色深范围。,如果是普通jpg或者png图片做高差图的话,垂直分辨率就是256,代表最多能表达256个不同高度,用这样的垂直分辨率刷高山区域,很容易出现“梯田”状的结果,所以最好使用16bit或32bit色深的高动态图片来做高差图。

我们用笔刷刷出来的heightmap都是16bit的。


Raise / Lower Terrain

按下鼠标左键开始提升地形高度,如果同时按住shift键,则降低地形高度直到0。


Paint Height

直接刷出特定高度,按住shift键获取某一点的高度。非常适合用来刷出非水平面高度的平整地形,比如山顶或山间的一块平整地面等等。同时如果场景中有水面,由于Terrain不能刷出水平面以下的地形(最低刷到水平面),可以首先将全部地形提升到一定高度,再将水域地形刷低。


Smooth Height

相当于光滑笔刷工具


Paint Texture

在地形表面上绘制贴图。

首先需要在Textures栏中点击Edit Textures...,再选择Add Texture以添加一层贴图。

在这个“添加地形贴图”面板中我们可以设置一张颜色贴图和一张法线贴图,并指定贴图的重复度。如果检测出颜色贴图含有Alpha通道,就会将这个Alpha通道与作为光滑度的贴图,否则就会出现一个Smoothness参数供我们调节这一层表面的光滑度,此外还提供一个Metallic参数供我们调节这一层表面的金属颜色。

这里的贴图都需要处理成无缝贴图,否则场景中会出现明显的接缝。贴图不需要特别大,因为重复度会被设置得比较高,通常512或者1024分辨率的贴图就可以了。

第一层贴图会默认覆盖整个地形区域,从第二层(从左往右)开始,添加好贴图以后需要在地形上刷出该层贴图的出现范围。

需要编辑各层的贴图设置只需点击Edit Textures... > Edit Texture...,需要删除贴图层就点击Edit Textures... > Remove Texture

我一直都觉得这是个非常精妙的设计,用无缝贴图的大量重复来覆盖区域,然后叠加多层贴图以消除重复感,不论是颜色贴图还是控制贴图都不需要很大的尺寸就能覆盖超大的地形区域。

可以尝试在Maya中使用这种思路来设计地面材质的shading network。


Place Trees

在地形上刷出树来。

按下鼠标左键开始刷树,按住Shift键再刷可以删除已经刷出来的树,按住Ctrl键再刷可以删除当前选择的特定类型的树。

在Trees栏点击Edit Trees...,再选择Add Tree,可以添加一个GameObject作为“树”。这个物体可以是任意GameObject,并不一定非要是Tree Object。

然后就可以用鼠标在地形表面“刷”出这类树来了,同时也会出现具体的Settings参数。

我们可以添加多种type的树,然后一层层刷出复杂的森林结构。

同样的,我们也可以点击Edit Trees... > Edit Tree给树更换GameObject,或点击Edit Trees... > Remove Tree删除某一层的树。

说是Place Trees,其实可以用来放置各种场景物体,我个人比较喜欢用这个功能在场景中添加比较大块的岩石,因为不会出现自旋的现象。


Place Details

在地形上刷出细节物体,通常用来做草。

按下鼠标左键开始刷细节物体,按住Shift键再刷可以删除已经刷出来的细节物体,按住Ctrl键再刷可以删除当前选择的特定类型的细节物体。

在Details栏点击Edit Details...,再选择Add Grass Texture,打开Add Grass Texture面板设置新建“草贴图”的参数:

在Details栏点击Edit Details...,再选择Add Detail Mesh,打开Add Detail Mesh面板设置新建“细节面片”的参数:


上一篇下一篇

猜你喜欢

热点阅读