当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Unity 3D 搭建地形系统

Unity 3D 搭建地形系统 时间:2018-09-28      来源:未知

地形被广泛的应用于开放的场景和城市的仿真, 游戏里也有被大规模的使用,尤其是现在moba类的游戏。比如英雄联盟、魔兽世界、王者荣耀。

游戏模型特点:地形比较复杂,高低起伏,有河流,有植被,还有的复杂的道路。

这么复杂的模型如果使用3D max来做,将会浪费大量的时间,因为每一个模型都可以使用Unity 3D工具来生成。

一、地形是如何生成的?

先创建一个新的场景,在Hierarchy中右键3D object->Terrain,就创建了一个地形对象。这样在Project中会产生一个new Terrain。在“层级视图”(Hierarchy) 中选中地形 (Terrain) 后,便可以使用 F(焦点)键对地形进行轻松导航。按 F 后,无论鼠标在哪个位置,都会移动到场景视图 (Scene View) 的中心位置。这样就可以对某个区域进行润色,快速移动到另一个区域并修改其他东西。如果在按下 F 键时鼠标没有悬停在地形 (Terrain) 的某个区域,则整个地形 (Terrain) 都会被置于场景视图 (Scene View) 的中心位置。

 

二、地形组件

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

 

1. 使用笔刷可以进行地形的拉伸和降低

单击此选项按钮后,再展开的选项卡中,先设置Brush Size(笔刷大小)、Opacity(不透明度)的值以及绘制时使用的Brushes(笔刷),然后就可以在场景中用鼠标单击或拖动绘制地形了。 单击鼠标会增加高度,保持鼠标按下状态移动鼠标会不断的升高高度直到达到高度的大值。如果想降低高度,按住Shift键再单击鼠标即可。  

2. 为地形添加纹理

单击左侧开始的第2个按钮选项,可进入喷涂高度模式。该模式一般用于绘制平整的高地或峡谷等地形。 设置Brush Size(笔刷大小)、Opacity(不透明度)、Height(高度)的值以及绘制时使用的Brushes(笔刷),就可以利用鼠标移动场景中地形上的任意部分,直到达到你希望的高度为止。 

 

3. 处理多层纹理

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

 

4. 绘制纹理

导入纹理,选择Assets -> import package ->Environment

单击左侧开始的第4个按钮选项,可进入纹理绘制模式。单击【Edit Texture】可添加、编辑、移除纹理。重复“Add Texture”这个过程,可以添加多个纹理。添加地形纹理以后,选择想使用的地形纹理,即可使用此纹理拖动鼠标左键对地形进行纹理绘制。

 

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

 

5. 添加地形细节—树木

单击【Edit Tree】可添加、编辑、移除树。重复“Add Tree”这个过程,可以添加多种树。选择使用的树,设置树的密度(Tree Density)为合适的值,然后就可以将其绘制在场景中了,此时当前鼠标所在位置会标记为蓝色高亮,如下图所示,单击即可。 单击地形的任何地方都能种树。按住鼠标左键不放并拖动鼠标可在地形上连续种树。按住Shift键然后单击地面,可以擦掉相应位置种植的树。 

参数设置(Settings): Bush Size:笔刷的尺寸。设置植树时笔刷的大小,取值范围在1~100之间。 Tree Density:树木密度。用于控制树对象的间距。值越大树木越密集、间距越小。取值范围在10~100之间。 Tree Height:树的基准高度。值越大树木越高,取值范围在50~200之间。 

 

6. 添加地形细节—草

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

其中,【Settings】下的【Target Strength】表示目标强度,用于控制种草以及添加细节网格时所产生的影晌,取值范围在0~1之间。 单击【Edit Details…】,在弹出的快捷菜单项中选择【Add Grass Texture】,然后选择某种草坪纹理,并设置相关参数,单击【Add】即可添加一种草坪: 

 

Details Texture:草坪的图片。 Min Width、Max Wdth、Min Height:设定草坪的小宽度、大宽度、小高度值。 Noise Spread:噪波范围。用于控制草产生簇的大小。该值越低意昧着噪波越低。 Healthy Color:健康颜色。此颜色在噪波中心较为明显。 Dry Color:干燥颜色。此颜色在噪波边缘较为明显。 Billboard:广告牌。该项如果被勾选,草将随着摄像机一起转动,永远面向主摄像机。 

这两项选择后,就可以在场景中用鼠标种草了。 按住Shift键可用鼠标选择删除,按住Ctrl键可用鼠标删除选择的细节网格。

7. 地形参数设置

基本地形(Base Settings)选项卡下的参数如下: Draw:是否绘制基本地形。 Pixel Erroe:像素容差。在显示地形网格时允许的像素误差。是地形LOD系统的一个参数。 Base Map Dist:基本地图距离。设置地形贴图显示高分辨率的距离。 Cast Shadows:投影。设置地形是否投射阴影。 Mterial:材质。通过单击右侧的圆圈按钮为地形指定材质 。

 

树和细节配置(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:大网格树。该项用于控制在地形上所有模型树的总数量上限。

 

针对草的风设置(Wind Settings for Grass)选项卡下的参数如下: Speed:速度。该顶用于设定风吹过的速度。 Size:大小。该项用于设定风力影响的面枳。 Bending:弯曲。该项用于没定草木被风吹的弯曲程度。 Crass Tint:草的色调。该项用于设定所有草以及细节网格整体的色调。

 

【Resolution】选项卡下的参数用于添加地形对象后设置相关的属性。参数含义如下: HeightMap Resolution:高度图分辨率。 Detail Resolution:细节分辨率。控制草地和细节网格的地图分辨率。如果希望提高绘制性能,可将该数字设置低一些,比如设置为512或者256。 Base Texture Resolution:基础纹理分辨率,用于代替在一定距离的泼溅贴图 (splat map) 的复合纹理分辨率。

 

三、示例Demo

这里介绍实际操作的基本步骤,当你熟悉了这些基本步骤后,就可以绘制各种绚丽的地形了。按这些基本步骤操作完成后,即可得到下面的简单示例效果。

 

设计完毕基本的场景后,一般都需要先运行看看效果如何,即先让场景“动起来”,以方便观察不同的位置,而不是仅仅观察固定摄像机位置的死板板的场景。 

上一篇:VR Funhouse研究之下载安装

下一篇:SPI总线

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部