Unity基础 - 地形基础

原帖地址

1.地形绘制
2.地形贴图
3.植物的种植
4.其他细节的实现


Uploading 2016-05-02_20-09-56_318489.png ...]

主界面

在 Unity 5 中,默认导入资源包是空,如下图:

Assets

不要着急,需要自己去 Asset Store 下载:

Asset Store

下载完成后,就可以导入 Standard Assets 了。

下载完成

Project

第一个工具可以实现突起和凹陷效果,选择相应的笔刷,设定所需要的笔刷大小以及笔刷的强度,按住左键就可以对地形进行绘制了,按住 Shift + 左键是对凹陷进行的处理,制作凹陷是可以把笔刷调小点。

Raise / Lower Terrain

效果如下:

效果图

第二个工具可以改变地形的高度,可以用来踏平一个地形。

Paint Height

效果如下:

效果图

第三个工具是柔滑高度,就是使地面变得比较光滑。

Smooth Height

效果图如下:

使用柔滑高度工具前

使用柔滑高度工具后

第四个工具是绘制纹理,定型绘制完后,需要给其添加一些纹理,这时需要使用第四个工具,绘制地形纹理。

Paint Texture

点击添加纹理后,弹出下面的对话框:

弹出框

选择一个地形纹理,点击 Add,效果如下:

添加纹理后

可以添加多种纹理,比如添加草地材质,在地形中进行绘制,绘制前可以设置笔刷的大小、强度和融合度。

添加草地纹理

第五个工具是用来在地形上绘制树木的。点击 Edit Trees,然后点击 Add Tree。

Place Trees

弹出下面的对话框:

Add Tree

Select GameObject

选择一个游戏对象,点击添加后,可以对添加的 Trees 进行设置:

Settings

参数以及其代表的含义:
Brush Size :笔刷大小
Tree Density : 树的密度
Tree Height : 树的高度
Lock Width to Height : 锁定宽度到高度
Tree Width : 树的宽度(在锁定状态时不可选,在非锁定状态可以设置树的宽度)
Random Tree Rotatio : 树的旋转随机性

如果想在场景中加入大量的树,可以点击 Mass Place Trees,弹出下面的对话框,通过改变 Number Of Trees 的数值来确定最终在场景中种植的树目,还可以通过 shift + 左键去除不想要的树。

Place Trees

在场景中进行树的种植时,不必担心树的悬浮或者插入地面太深的问题,Unity 引擎本身会根据地形的高度自动调节。

最终效果图

第六个工具是绘制草地的细节。

Paint Details

选中第六个工具来绘制草地,添加一个草地的材质。

Edit Details

弹出下面的对话框,选择响应的草地。同时可以根据自己的需要修改下面的参数值。也可以在绘制完后再进行调整。点击 Add 按钮即可。

Add Grass Texture

选中草地之后,按住左键在场景中绘制。我们可以用 PhotoShop 进行草地的绘制,保存成 .psd 格式,再导入到 Unity 中就可以使用了。

效果图

第六个工具是有关地形细节的设置。具体的参数有网格优化的容差,Map 距离,光晕图的设置等。

几个星期前,我在想,能否使用Unity来进行地形的实时化?比如说,如果发生爆炸,它能否在地形中显示一个气泡?我认为学习更多高级的Unity中的地形特征将会是一个好的项目。 这要比我预想的更具挑战性,因为很难在执行这些操作时获得帧率来保持稳定。使用一些技巧,最终实现了我预想的效果。 示例是这样工作的。脚本随机产生“shell”并很快掉落到地面。每一个shell都依附着一个onTrigger对撞机。如果它和拥有 TerrainDeformer组件的地形相冲突的话,shell将告诉组件它的位置和爆炸的作用力。shell然后实例化一个爆炸(explosion)(由Ben Throop great Detonator framework提供),然后移除它自身。 TerrainDeformer脚本然后将那个位置翻译成相对地形的正确位置,并修改heightmap(地形高度)和alphamap(地形纹理)。一点儿数学知识用来在影响圆周内部查找所有的heightmap和alphamap位置。 被用于在影响范围重绘质地的纹理,是从基于传递到脚本(Terrain Deformation Texture Num)中的数字顺序索引值的地形纹理列表中选择的。在这个例子中,它被设置为1,因此它将使用列表中的第二个纹理来重绘质地。 在创建你自己的地形时,有必要将地形的高度设置为大于0米,从而形成弹坑。我建议深度至少为3米。这可以通过将地形高度设为大于3米的任何值,然后点击Terrain->Flatten Heightmap并输入3米。 出于执行的原因,保持你的Terrain Size为small是非常重要的,以及更重要的是保持Heightmap Resolution为low。在这个例子中,设置为33。 目前版本没有想缺乏地形边缘检测的局限性,并提供多个地形。这个例子表明它不仅能够工作,而且不会有大的性能损失。 感谢Calin创建一个泥土纹理。 为检测示例,<http://blog.almostlogical.com/workingExamples/RealTimeTerrainDeformation/index.html> 为获得源码(unitypackage), 源码要求:Unity 2.6 以及 Detonator Framework。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值