【Unity】4.3 地形编辑器

分类:Unity、C#、VS2015 编辑器

建立日期:2016-04-10 ide

1、简介

Unity拥有功能完善的地形编辑器,支持以笔刷绘制的方式实时雕刻出山脉、峡谷、平原、高地等地形。Unity地形编辑器同时提供了实时绘制地表材质纹理、树木种植、大面枳草地布置等功能。值得—提的是,Unity中的地形编辑器支持LOD(Level of Detail)功能,可以根据摄像机与地形的距离以及地形起伏程度调整地形块(Patch)网格的疏密程度。远处或平坦的地形块使用稀疏的网格,近处或陡峭的地形块使用密集的网格。这将使游戏场景即真实、精细,同时也不影晌性能。 性能

注意:地形与其余的游戏对象有些不一样,地形支持Transform(几何变换)组件中的Position(位置)变换,但对于Rotation(旋转)以及scale(缩放)操做是无效的。 3d

2、地形的建立方式

要建立地形并实现山脉、峡谷、平原、高地、树木种植、大面枳草地布置等功能的绘制,必须先熟悉下面的基本概念。 orm

一、添加地形对象 htm

先建立一个新的场景,而后打开菜单栏中的【Terrain】→【Create Terrain】,就建立了一个地形对象: 对象

image

新建立的地形会在项目工程中建立一个地形资源,并在当前场景中添加—个地形实例(Project视图和Hierarchy视图中同时出现了该地形的相关文件),以下图所示:blog

image

新建地形对象后,在检视器视图中能够看到该对象所挂载的组件,除了Transform组件外,还有一个Terrain(地形)组件以及一个Terrain Collider(地形碰撞)组件。 游戏

二、地形组件 图片

Terrain组件共包含7个选项按钮,利用这些选项就能够绘制地形起伏、地表纹理或附加细节如树、草或石头等:

image

在这7个选项按钮中,前3个用于地形高度绘制。

(1)按钮1--升高/下降高度

image

单击此选项按钮后,再展开的选项卡中,先设置Brush Size(笔刷大小)、Opacity(不透明度)的值以及绘制时使用的Brushes(笔刷),而后就能够在场景中用鼠标单击或拖动绘制地形了。

单击鼠标会增长高度,保持鼠标按下状态移动鼠标会不断的升高高度直到达到高度的最大值。若是想下降高度,按住Shift键再单击鼠标便可。

(2)按钮2--喷涂高度

单击左侧开始的第2个按钮选项,可进入喷涂高度模式。该模式通常用于绘制平整的高地或峡谷等地形。

设置Brush Size(笔刷大小)、Opacity(不透明度)、Height(高度)的值以及绘制时使用的Brushes(笔刷),就能够利用鼠标移动场景中地形上的任意部分,直到达到你但愿的高度为止。

image

(3)按钮3--平滑高度

单击左侧开始的第3个按钮选项,可进入平滑高度模式。该模式用于柔化绘制的区域的高度差,使地形的起伏更加平滑。

image

(4)按钮4--绘制纹理

单击左侧开始的第4个按钮选项,可进入纹理绘制模式。单击【Edit Texture】可添加、编辑、移除纹理。重复“Add Texture”这个过程,能够添加多个纹理。

image

添加地形纹理之后,选择想使用的地形纹理,便可使用此纹理拖动鼠标左键对地形进行纹理绘制,以下图所示:

image

选择不一样的纹理再拖动鼠标绘制,就能够在同一个场景中绘制出各类形式的地形纹理。

(5)按钮5—植树

单击左侧开始的第5个按钮选项,可进入植树模式。

image

单击【Edit Tree】可添加、编辑、移除树。重复“Add Tree”这个过程,能够添加多种树。

image

选择使用的树,设置树的密度(Tree Density)为合适的值,而后就能够将其绘制在场景中了,此时当前鼠标所在位置会标记为蓝色高亮,以下图所示,单击便可。

单击地形的任何地方都能种树。按住鼠标左键不放并拖动鼠标可在地形上连续种树。按住Shift键而后单击地面,能够擦掉相应位置种植的树。

image

参数设置(Settings):

Bush Size:笔刷的尺寸。设置植树时笔刷的大小,取值范围在1~100之间。

Tree Density:树木密度。用于控制树对象的间距。值越大树木越密集、间距越小。取值范围在10~100之间。

Tree Height:树的基准高度。值越大树木越高,取值范围在50~200之间。

Color Variation:每棵树的颜色所可以使用的随机变量值,取值范围在0~1之间。

(6)按钮6—种草

单击左侧开始的第6个按钮选项,可进入Paint Details模式,利用该模式可绘制草坪(用Grass Texture种草)以及指定对草坪进行细节性描述的网格(Detail Mesh)。

image

其中,【Settings】下的【Target Strength】表示目标强度,用于控制种草以及添加细节网格时所产生的影晌,取值范围在0~1之间。

单击【Edit Details…】,在弹出的快捷菜单项中选择【Add Grass Texture】,而后选择某种草坪纹理,并设置相关参数,单击【Add】便可添加一种草坪:

image

Details Texture:草坪的图片。

Min Width、Max Wdth、Min Height:设定草坪的最小宽度、最大宽度、最小高度值。

Noise Spread:噪波范围。用于控制草产生簇的大小。该值越低意昧着噪波越低。

Healthy Color:健康颜色。此颜色在噪波中心较为明显。

Dry Color:干燥颜色。此颜色在噪波边缘较为明显。

Billboard:广告牌。该项若是被勾选,草将随着摄像机一块儿转动,永远面向主摄像机。

单击【Edit Details…】,在弹出的快捷菜单项中选择【Add Details】,而后选择某种草的预设,并设置相关参数,单击【Add】便可添加一种草的预设体:

image

这两项选择后,就能够在场景中用鼠标种草了。

按住Shift键可用鼠标选择删除,按住Ctrl键可用鼠标删除选择的细节网格。

image

(7)按钮7—地形参数设置

单击左侧开始的第7个按钮选项,进入地形设置模式。

image

基本地形(Base Settings)选项卡下的参数以下:

Draw:是否绘制基本地形。

Pixel Erroe:像素容差。在显示地形网格时容许的像素偏差。是地形LOD系统的一个参数。

Base Map Dist:基本地图距离。设置地形贴图显示高分辨率的距离。

Cast Shadows:投影。设置地形是否投射阴影。

Mterial:材质。经过单击右侧的圆圈按钮为地形指定材质。

image

树和细节配置(Tree & Details Objects)选项卡下的参数以下:

Draw:若是选中该项,全部的树、草和细节模型都将被渲染出来。

Bake Light Probes for:

Detail Distance:细节距离。该项用于设定摄像机中止对细节渲染的距离。

Collect Detail Patches:

Detail Density:细节密度。该项用于控制细节的密度。默认为1,若是将此值调小,过密的地形细节将会不被渲染。

Tree Distance:树林距离。该项用于设定摄像机中止对树对象进行渲染的距离。值越高,越远的树会被渲染。

Billboard Start:开始广告牌。该项用于没定摄像机将树渲染为广告牌的距离。

Fade Length:渐变距离。该项用于控制树对象从模型过渡到广告牌的速度,若是值设置为0,模型会突变为广告牌。

Max Mesh Trees:最大网格树。该项用于控制在地形上全部模型树的总数量上限。

image

针对草的风设置(Wind Settings for Grass)选项卡下的参数以下:

Speed:速度。该顶用于设定风吹过的速度。

Size:大小。该项用于设定风力影响的面枳。

Bending:弯曲。该项用于没定草木被风吹的弯曲程度。

Crass Tint:草的色调。该项用于设定全部草以及细节网格总体的色调。

image

【Resolution】选项卡下的参数用于添加地形对象后设置相关的属性。参数含义以下:

HeightMap Resolution:高度图分辨率。

Detail Resolution:细节分辨率。控制草地和细节网格的地图分辨率。若是但愿提升绘制性能,可将该数字设置低一些,好比设置为512或者256。

Base Texture Resolution:基础纹理分辨率,用于代替在必定距离的泼溅贴图 (splat map) 的复合纹理分辨率。

3、示例(Demo05)

这里介绍实际操做的基本步骤,当你熟悉了这些基本步骤后,就能够绘制各类绚丽的地形了。按这些基本步骤操做完成后,便可获得下面的简单示例效果:

image

一、添加地形对象

在层次视图中鼠标右击选择【Terrain】→【Create Terrain】,建立一个地形。此时在Project的Assets下也会自动添加一个文件名为【New Terrain】的地形组件。

image

将Project的Assets下的【New Terrain】拖放到Demos05子文件夹下,并将其换名为【Demo05Terrain】。

在“层级视图”(Hierarchy) 中选中地形 (Terrain) 后,即可以使用 F(焦点)键对地形进行轻松导航。按 F 后,不管鼠标在哪一个位置,都会移动到场景视图 (Scene View) 的中心位置。这样就能够对某个区域进行润色,快速移动到另外一个区域并修改其余东西。若是在按下 F 键时鼠标没有悬停在地形 (Terrain) 的某个区域,则整个地形 (Terrain) 都会被置于场景视图 (Scene View) 的中心位置。

二、设置地形长宽

在检视图中,单击地形组件中的【按钮7】,修改【Resolution】选项卡下的参数设置,将地形的长(Length)宽(Width)都设置为2000,其余使用默认值:

image

下面是在Unity 5.3.4中初次建立地形后的默认值:

宽(Terrain Width):500

长(Terrain Length):500

高度(Height):600

Heightmap Resolution:513

细节分辨率(Detail Resolution):1024

Detail Resolution Per Path:8

Control Texture Resolution:512

Base Texture Resolution:1024

三、绘制山脉

在检视图中,单击地形组件中的【按钮1】,而后在地形上绘制出山脉的初步效果,这—步骤主要从总体角度来把握山脉效果,绘制出山脉的大体起伏便可:

image

而后在【Brushes】栏中选择笔刷的样式,为山脉增长细节结构,用于模拟山脊的效果:

image

四、绘制平坦地面

绘制山脉上的部分平坦地面,以下图所示:

技巧:按住Shift键配合单击或按住鼠标左键能够实时获取到笔刷所在地形的相应位置的高度,并将该高度设为笔刷的高度值。

image

五、为地形添加材质(可选)

鼠标右击Demo05文件夹,在该文件夹下建立一个材质:

image

而后将其命名为【Demo05Material】:

image

选中Demo05Material材质,在Inspector视图中单击Shader右侧的按钮,在弹出的列表框中依次选择【Nature】→ 【Terrain】→【Diffuse】项,为terrain材质指定shade:

image

选择地形,在Inspector视图中,单击【按钮7】,而后单击【Material】项右侧的圆圈按钮,在弹出的Sehct Matmal对话框中为地形指定刚刚建立的材质:

image

说明:地形的材质不是必须设置的,一般没置地形的材质是为了可以更改地形的渲染Shader。若是该材质设置为空,Unity会使用一套内置的地形材质。

六、添加纹理

单击地形编辑器中的【按钮4】切换到【Paint Textures】模式,单击【Edit Texture】按钮,选择【Add Texture】项,会弹出Add Terrain Texture对话框,单击Texture顶的【Select】按钮,在弹出的Select Texture2D对话框中指定一张纹理做为地形的首层纹理:

image

指定首层纹理后,Unity会自动将首层纹理平铺在整个地形上。若是须要修改平铺的大小,可继续单击【Edit Texture】按钮,选择【Edit Texture】项,在弹出的对话框中调节【Size】项的X、Y方向的数值便可。

首层纹理指定以后,接下来还能够继续为地形指定其余纹理用于丰富地形效果,方法与指定首层纹理相同。指定后再选中新添加的纹理,利用笔刷将该纹理绘制到地形上,这里再也不演示。

七、添加路面

办法与“6.添加纹理”相同。

下面是添加的路面纹理:

image

下面是添加路面后的效果:

image

八、添加树

地形的纹理绘制完毕后,接下来为地形添加树。单击地形编辑器中的【按钮5】切换到【Place Trees】模式,单击【Edit Trees】按钮,选择【Add Tree】,在弹出的Add Tree对话框中单击【Tree】顶右侧的圆圈按钮,进而在弹出的【Se!ect CameObject】对话框中指定—棵树做为地形的树(重复此操做能够添加多种树):

image

添加树之后,在【Trees】预览框中选中某种树,设置合适的参数后,就能够利用笔刷在地形上种树:

image

若是但愿修改已添加树的样式或受风力影晌的程度等参数,先在Tree预览框中选择要编辑的树,而后单击【Edit Trees】按钮,选择【Edit Tree】,在弹出的对话框中进行编辑。

要移除树,单击【Edit Trees】按钮,选择【Remove Tree】项便可。

九、添加草、灌木等

绘制完树,接下来为地形添加草、灌木等细节。

单击地形编辑器中的【按钮6】切换到【Paint Deails】模式,而后添加草坪、灌木等细节便可,用法与前面添加树的办法相似,这里就再也不细讲了。

十、设置其余参数

当你熟悉之后,还能够经过地形编辑器【按钮7】下的选项,设置风刮草地和树木的效果。最后,再添加光源让整个场景看起来明亮绚丽等。

相关文章
相关标签/搜索