2012-11-19 15:21:38 Const1115 阅读数 4458

如果要把unity3D的工程,转到flash平台,是有一些限制的,其中,unity3d的地形不能使用,这就是一个很大的问题。

所以,使用mesh来替代unity自带的地形,就变成首选的解决方案。

问题接着而来,mesh怎么像unity自带的地形一样刷地表贴图,怎么种树,草。这就需要一套完整的系统与工具来支持。

于是有了这个新的工具。

1 先说刷地表贴图的实现,这个其实就很简单,首先是mesh材质的shader的支持,shader要支持4层纹理混合,外加一个mix texture,也就是5层贴图的shader。这个很简单了,就是4层贴图根据mix texture的R G B A通道来混合最后的颜色。

half4 splat_control = tex2D (_Control, IN.uv_Control);
half3 col;
col  = splat_control.r * tex2D (_Splat0, IN.uv_Splat0).rgb;
col += splat_control.g * tex2D (_Splat1, IN.uv_Splat1).rgb;
col += splat_control.b * tex2D (_Splat2, IN.uv_Splat2).rgb;
col += splat_control.a * tex2D (_Splat3, IN.uv_Splat3).rgb;

有了shader之后,刷mesh的贴图,无非就是修改mix texture的各个通道的颜色而已。用从屏幕中心点发出射线做碰撞,碰撞得到的mesh的点的uv坐标,来确定被修改的mix texture的部分。然后根据笔刷的值来修改mix texture相应通道的值。


上图中,scene窗口中,原点就是笔刷,笔刷可以预览选中的贴图,方便美术绘制。

2 种树,这个就更简单了,把树的模型放到mesh表面。

3 种草,草要会动才有真实感,把草的动画都写在顶点shader里面,只要给shader传入一个时间参数就可以。然后场景中可能存在大量的草,最后考虑到效率的优化,在运行场景的时候,脚本会判断是否是同样mesh,同样材质的草,如果是一样的,会把一定范围内所有的相同的草合并成一个大的mesh,这样做,场景中可以存在许多的草,且效率很高。



2017-05-19 20:34:26 yongh701 阅读数 6309

Unity3D自带地形和天空盒子,可以很轻易就做出3D地形和天空贴图。无须写一行代码。下面举一个例子说明如下图的场景实现:


一、地形

1、通过【GameObject】->【3D Object】->【Terrain】能添加一个地形


并且在Asset中,通过【Import Package】->【Terrain Assets】可以导入Unity3D自带的地形贴图


2、在地形的属性面板,设置界面,可以通过设置Terrain width、Terrain Length调整这个地形,实质和Plane的大面板所占的长和宽,此例子将地形设置为200x200,而不是默认的2000x2000。而Terrain Height则是可以设置这个地形中最高的板块是多少,下面通过地铁提升工具整出来的地形都不能超过这个数。Detail Distance和Tree Distance建议调到最高,这只是涉及编辑器在多远开始不显示草和树以节约系统资源。同时可以在Wind Settings调节草所受的风速。


并且可以利用地形增高(按着shift则变成了地形减低工具了)、取高、平滑工具画出你想要的地形。这个估计玩过《模拟人生》系列盖过房子的朋友都不陌生吧?


3、在画笔界面可以设置地形的材质。选择Edit Texture...在Texture和Normal Map添加材质GrassRock则得到如图所示的材质。第一个添加的材质将成为地形的默认材质。


而你也可以添加其它材质,利用其它地形材质,在地形中利用画笔工具进行新材质的绘制。如图所示,我就在Grass&Rock中画了些草。这是新的第二材质。


4、在树界面进行如下图的设置,先添加一个预设自带的树,当然你也可以选择其它,则可以利用画刷进行树的绘制。


5、最后在花花草草界面,同样添加预设自带的grass,则可以画草。


二、天空盒子

其实就是摄像机对于天空部分的贴图。这部分更加简单。

1、首先Asset导入自带的天空盒子资源。


2、对于Main Camera直接添加一个Skybox的渲染组件,并且选择Sunny1 Skybox,同时将摄像机摆到(100,20,100)地形的中央,并且设置绕y轴旋转270度,也就是-90度。则可以得到如上图的效果。


2019-03-02 19:36:39 qq_36228216 阅读数 160

通过在场景内容列表中creat 3d object 可添加terrian

点击小齿轮可进行一些重要参数的设定。比如长宽之类的(在Resolution中设定)。


这里的第二个按钮(Paint)是和地形高度相关的。可以通过刷子刷出高度,也可以点击右下角的flatten按钮将地形统一上升或下降到某一设定高度(图中该设定高度是90)。


这里的按钮可以用来升高或降低地形(与之前那种的不同是这个没有制定高度,即没有上升或者下降的终点)

Brushes有不同的形状。Brush size控制笔刷的大小。

按住shift键刷,地形会向下陷。

Opacity精度越大,你刷一次的结果对地形产生的影响就越大。


使得地形平滑化,消除尖刺


这个部分可以给地形刷上一定的材质。当然需要首先导入材质包。其中standard assets中包含一部分的材质包。

点击add texture之后出现如下选项框

可在这里添加想要的多种材质,其中第一次添加的默认为全局的材质,后面添加的可以通过刷子刷到部分位置上。


可以添加树木,当然也需要导入assets



绘制细节,比如画一些小草之类的东西。也需要通过导入包之后刷地形来实现。


以上所有的包都可以在standard assets中找到。 导入environment的部分包即可。

 

2016-02-28 19:27:03 u010930289 阅读数 12063

地形工具栏的最后一个工具是设置:
这里写图片描述

设置检视器

设置被提供用于如下描述的一些全局使用和渲染选项:
这里写图片描述

基本地形

属性 功能
Draw 切换地形渲染开关
Pixel Error 在地形贴图(高度图,纹理等等)与生成地形之间的贴图精确度;更高的值为更低的精确度,但渲染开销更低。
Base Map Distance 地形纹理将被以完整分辨率显示的最大距离。超过这个距离,为了效率将使用更低分辨率的混合图片。
Cast Shadows 地形是否产生阴影?
Material 用于渲染地形的材质。这将影响地形纹理的颜色通道如何被插值。查看【 Enabling Textures 】获取更多细节。可用的选项有:
Built In Standard 对于每个splat层,可以为反射和平滑使用一个纹理,为法线使用一个纹理,以及一个标量值来调整金属光泽。关于PBR和标准着色器的更多信息,参见【标准着色器】。
Built In Legacy Diffuse 这是来自Unity4.x及更早版本的内建地形材质遗产。它使用兰伯特(仅有漫射形式)光照模型,有可选的法线贴图支持。
Built In Legacy Specular 这个内建的材质使用了BlinnPhong(漫射及镜面)光照模型,有可选的法线贴图支持。可以对地形指定整体镜面反射颜色和亮度。
Custom 使用你选择的自定义材质来渲染地形。这个材质应当使用的被指定用于地形渲染的着色器(例如,着色器应当正确地执行纹理splat)。我们建议你查看我们内建地形着色器的源代码,并在它们上进行修改。
Reflection Probes 在地形上反射探针如何被使用。仅当使用内建标准材质或支持渲染反射的自定义材质时才有效果。可用选项有:
Off 反射探针被禁用,天空盒将会被用来反射。
Blend Probes 反射探针将被启用。仅在探测之间产生混合。如果附近没有反射探针,默认反射将被使用,但在默认反射和探针之间的混合不会产生。
Blend Probes And Skybox 反射探针启用。混合产生在探针和探针之间,或探针与默认反射之间。
Simple 反射探针被启用,但当有两个重叠量存在时,在探针之间不产生混合。
Thickness 沿Y轴负方向地形碰撞体积应当扩大多少。物体被认为与地形碰撞从表面到一个等于这个thickness的深度。在没有使用代价高昂的连续碰撞检测时,帮助避免高速移动物体穿过地形。注:如果碰撞器太扁,高速物体上帧位置在碰撞器上方,下一帧到了碰撞器下方,期间穿过了碰撞器,也即穿过了地形表面,但没有产生碰撞。

树木和细节对象

属性 功能
Draw 树、草地和细节物体要被绘制出来吗?
Detail Distance 超过(与摄像头之间)距离外的细节将被剔除。
Detail Density 在给定的区域单元内,细节/草地对象的数量。这个数值可以被设置得更低来降低渲染负载。
Tree Distance 超过(与摄像头之间)距离的树木将被剔除。
Billboard Start (与摄像头之间)距离的3D树木物体将会被公告板图像所代替。
Fade length 超过这个距离的树木在3D对象和公告板之间过渡。
Max Mesh Trees 会被作为固定3D网格表现的可见树木的最大数量。超过这个限制,树木将被公告板代替。

风的设置

属性 功能
Speed 风吹到草地上的速度。
Size 风吹过草地区域形成的“波痕”尺寸。
Bending 草随风吹而摇摆的程度。
Grass Tint 应用到草地对象的整体色调。

分辨率

属性 功能
Terrain Width (在世界坐标系中)地形对象在X轴上的尺寸。
Terrain Length (世界坐标系中)地形对象在Z轴的尺寸。
Terrain Height (世界坐标系中)可能的高度图最低值与最高值间的差。
Heightmap Resolution 地形高度图的像素分辨率(值应当为2的幂次再加1,如513=512+1)
Detail Resolution 决定细节/草地单个补丁块的贴图分辨率。更高的分辨率会产生更小、更细节的补丁块。
Detail Resolution Per Patch 单次绘制调用渲染的补丁块的长度/宽度。
Control Texture Resolution 控制不同地形纹理混合的“地形贴图”分辨率。
Base Texture Resolution 当从大于基本贴图的距离观察时(从上向下看),在地形上使用的混合纹理的分辨率。

高度图导入/导出按钮

Import Raw 和Export Raw按钮允许你设置或保存地形的高度图到一个以RAW灰度格式保存的图像文件中。RAW格式可以被第三方地形编辑工具(例如Bryce)所生成,也可以被Photoshop打开,编辑和保存。这允许在Unity之外对地形进行复杂的生成及编辑。

2016-02-27 21:34:38 u010930289 阅读数 13752

创建和编辑地形

通过菜单中的GameObject->3D Object ->Terrain,你可以为你的场景创建一个地形对象(这也将在项目视图中增加一个对应的地形资源)。然而,初始的地表除了一个巨大而单调的平面,什么都没有。但如果当地形对象被选中时你查看检视器,你将看到Unity提供了一些工具,你可以用来创建任何你喜欢的地表元素。
Terrain Editing Tools appear in the Inspector
除了树木放置工具和设定面板,在工具栏的所有工具提供了“刷子”的集合,以及对刷子尺寸与透明度的设置。这些绘制工具类似于图像编辑并非巧合,因为地形中的细节正是通过这种方式精确地创建, 通过在地表上“绘制”细节。如果你选择工具栏上最左边的工具(Raise/Lower Terrain)并在场景视图中于地形上移动鼠标,你将在地形表面上看到一个类似于点光源的光标。当你点击鼠标,你可以于鼠标位置处,绘制地表在高度上逐渐的变化。通过在数字工具栏中选择不同选项,你可以绘制不同的形状。刷子的尺寸和透明度选项分别改变刷子的面积,以及它效果的强度。
所有工具的细节将在随后的板块中给出。然而,它们都基于绘制细节的概念,并且除了树木放置工具,都有对刷子相同的选项,即尺寸和透明度。工具可以被用来设置地形的高度,也可以增加染色,平面和其它对象。

地形的快捷键

你可以在地形检视器中使用以下键盘快捷键:
按shift+从Q到Y的某一按键,来选择对应的地形工具(例如,Shift-Q选择了Raise/Lower工具)。
逗号(,)和句点(.)循环选择可用的刷子。
小于号(<)和大于号(>)循环选择可用的树木对象,纹理和细节。
另外,标准的F按键,对地形有轻微的不同。通常,当鼠标在场景视图中时,它将围绕整个对象适配选中状态。然而,由于地形通常很大,按F会将场景视图聚焦到地形中鼠标/刷子当前处理的区域。这提供了非常快和直管的方式来跳转到你希望编辑的区域。如果你按F当鼠标不在地形对象上,将回应标准的适配行为。

高度工具

在地形检视器工具栏上,前三个工具被用来绘制地形在高度上的变化。
这里写图片描述
从左边开始,第一个按钮激活Raise/Lower Height 工具。当你使用这个工具时,高度将随着你用鼠标在地形上扫过而升高。如果你在一处固定鼠标,高度将逐渐增加,这类似于在图像编辑器中的喷雾器工具。如果你按下shift键,高度将会降低。不同的刷子可以被用来创建不同的效果。例如你可以创建丘陵地形,通过soft-edged刷子进行抬升,然后削减陡峭的山峰和山谷通过使用hard-edged刷子进行降低。
Rolling hills cut by a steep valley
左起第二个工具,是Paint Height,类似于Raise/Lower工具,除了它有额外的属性来设置目标高度。当你在对象上绘制时,此高度的上方区域会下降、下方的区域会上升。你可以使用高度属性来手动设置高度,或者你可以使用在地形上shift+点击来取样鼠标位置的高度(相当类似于图片编辑器中的“eyedropper”工具)。在高度属性旁边是一个Flatten按钮,它简单地拉平整个地形到选定的高度。这对设置一个凸起的地面水平线很有用,如果你希望地表包含在水平线上的山峰和水平线下的山谷。Paint Height对于在场景中创建高原以及添加人工元素如道路、平台和台阶,都很方便。
Hillside with a flat road
左边第三个工具,Smooth Height 并不会明显地抬升或降低地形高度,但平均化附近的区域。这缓和了地表,降低了陡峭变化的出现,类似于图片处理中的模糊工具(blur tool)。你可以使用这个,例如,当你已经在可用集合中使用一个噪声更大的刷子绘制了细节。这些刷子图案将倾向于在地表上造成尖锐、粗糙的岩石,但可以通过使用Smooth Height来缓和。

用高度图工作

如之前提到的,高度工具令人联想到图片编辑器中的绘制工具。实际上,地形是使用一个在场景背后的纹理而实现的,那么这些工具实际上像纹理绘制工具那样起作用。
地形上每个点的高度,被表示为一个矩阵列中的值。这个数组可以用一个被称为高度图(heightmap)的灰度图来表示。使用外部编辑器的高度图有时候很有用,例如Photoshop,或者在你的游戏中获取现有的地理高度图。Unity提供了为地形导入、导出高度图的选项;如果你点击Settings tool(工具栏最右边的按钮),你讲找到标记为Import RAW和Export RAW的按钮。这些允许高度图从标准RAW格式中被读取或者写入;标准RAW格式是16位灰度格式,兼容大部分图片和地表编辑器。

纹理

你可以添加纹理图片到地形的表面上,来创造着色和良好的细节。由于地形是如此巨大的对象,在实践中标准的做法是使用一个无空隙地重复的纹理,在表面上用它成片地覆盖(从接近地面的角色视角来看,这样的重复通常不是明显易见的)。一个纹理将作为在地表上的“背景”图片,但你也可以绘制不同的纹理区域来模拟不同的地面,如草地、沙漠和雪地。绘制出的纹理可以在不同的透明度下使用,这样你可以在乡野草地和沙滩之间有一个渐变。
Sand dune terrain with sandy texture

启用纹理

工具栏中的paintbrush按钮启用纹理绘制。
这里写图片描述
一开始,地形将没有纹理分配用于绘制。如果你点击Edit Textures按钮并且在菜单中选择Add Texture,你讲看到一个窗口,在其中你可以设置一个纹理和它的属性。
取决于你在Terrain Settings中设置的材质类型,主纹理图的颜色通道可能有不同的用处。
Add Texture window (Standard)
标准:RGB通道是地形表面的反射颜色,而alpha通道控制平滑。也有一个“Metallic”滑块,控制表面的所有金属成色。
Add Texture window (Diffuse)
Diffuse:RGB通道是散射颜色。Alpha通道不被使用。
Add Texture window Specular
Specular: RGB 通道是漫射颜色。Alpha通道为光泽。
Add Texture window (Custom)
Custom:纹理图如何使用,取决于你的自定义着色器,但通常你希望RGB通道为基色。
除了主纹理贴图,你也可以为所有3个内建的材质类型指定一个法线纹理。这里被使用的法线纹理的纹理类型必须为“法线贴图”(你可以在一个纹理资源的导入选项中,改变纹理类型)。掌控法线贴图的着色器代码将被开启,仅当为地形设置了至少一个法线纹理,所以如果你不使用它们,你不需要付出性能消耗。
Size属性(就在texture boxes下方)允许你设置宽度和高度,即图片将于地形的表面上伸缩的程度。Offset属性决定,平铺纹理开始的位置与地形锚点之间的距离;你可以将它设置为0,让平铺从角落开始。一旦你将纹理和属性设置完成,点击Add按钮让纹理对地形可用。
为了改变一个已经添加了的地形纹理,选择它的thumbnail,点击“Edit Textures”按钮并从菜单中选择“Edit Texutre”。或者,你可以简单地双击它的thumbnail。为了移除一个地形纹理,选择它的thumbnail,点击“Edit Textures”按钮并从菜单中选择“Remove Texture”。

纹理绘制

你添加的第一个纹理将被作为“背景”使用而覆盖地形。然而,你可以添加你希望数量的纹理;随后的这些纹理将可以绘制,通过使用类似的刷子工具。在地形检视器纹理的下方,你可以看到通常的刷子尺寸及透明度选项,但也有另外一个称为目标强度(Target Strength)的选项。这个设置了刷子将会达到的最大透明度值,即使它重复地通过了相同的点。这对于在一个单一地形类型中,添加细微修补的颜色变动,来破坏一个巨大、平整、用相同纹理不断重复覆盖区域的单调,是个有用的办法。
Grass terrain with dirt texture painted on corners

树木

Unity地形可以用树木布置。可以像高度图和纹理被使用那样,树木补丁被绘制到地形上,但树木是固定的、从表面生长出的三维对象。Unity使用了优化(例如,对远距离树木的公告板化)来维持好的渲染效果,所以你可以拥有上千棵树组成的密集森林,同时保持在可接受的帧率。
Terrain with trees

启用树木

在工具栏上的tree按钮启用树木绘制。

一开始,地形将没有可用的树木,但如果你点击Edit Trees按钮并且选择Add Tree,将弹出一个窗口来让你从自己的项目中选择一个树木资源。
The Add Tree window
在标准资源包中,Unity带有几个样例SpeedTree树木对象,用作蓝本(Assets->Import Package ->Terrain Assets);但也可以用SpeedTree Modeler应用,UnityTree Creator工具或者其他3D建模应用,来创建合适的对象。
如果选中的树木对象是用Tree Creator所创建的,窗口将显示摇摆特性,用于调整对风的响应度。这些请看下面的“让树在风中摇摆”部分。

绘制树木

当一棵树被选中,你可以在地表上用绘制纹理或高度图的相同方式来绘制。可以用按住shift键来从区域中移除树木,而通过按下ctrl,只绘制、移除当前选中的树木。类似的刷子尺寸选项对树木绘制有效,但透明度选项被树木密度(Tree Density)所替代,这控制了在区域的一个给定单元中,绘制树木的平均数量。
一个范围滑块让你控制树木的最小高度和最大高度。如果你停用随机(Random),你可以为所有树木的高度指定一个值。默认下,一棵树的宽被锁定关联到其高度,这样树木通常被一致地缩放。然而你可以停用“锁定宽度到高度”(Lock Width to Height)选项并分别指定其宽度。
同样也有对颜色变化和随机树木旋转的控制。变动选项帮助创建随机、看起来自然的森林,而非由完全相同树木组成的人工种植园。
Mass Place Trees 按钮对创建一个用树木进行完全的覆盖而不在全部地表上绘制,是非常有用的办法。在一个大量安置之后,你仍可以使用绘制来增加或移除树木,来创建更密集或更稀疏的区域。

SpeedTree/LOD Trees

从Unity5开始,你可以使用来自IDV的SpeedTree建模来创建带有高端视觉效果如平滑LOD过渡、快速公告板以及自然风动画的树木。请到他们的页面获取更为细节的信息。你也可以从资源商店包或其他第三方来源免费导入SpeedTree资源到你的项目文件夹中。
查看这里来获取更多信息。

Tree Creator树木

Unity有它自己的树木创建器,你可以用它来产生新的树木资源;但你也可以用标准的3D建模应用来完成此项任务。树木网格必须少于2000个三角面(出于性能考虑),锚点必须在树木从地面上长出的根基处。网格应当有两个材质,一个用于树干,另一个用于树叶。
树木必须使用自然/柔和咬合树叶(Nature/Soft Occlusion Leaves)和自然/柔和咬合树皮(Nature/Soft Occlusion Bark)着色器。为了使用这些着色器,你也不得不将树放在特定的包含了名称“Ambient-Occlusion”的文件夹中。当你在这样一个文件夹中放了个模型并再次导入它,Unity将在一种特别为树木设计的方式中计算软环境咬合。“自然/柔和咬合”着色器依赖文件夹命名习惯;如果你不遵守,树木将不会正确地渲染。
当你从建模应用中保存一个树木资源,你需要点击Refresh按钮(当树木绘制工具被选中时在检视器中显示),目的是查看你地形上更新了的树木。

在树木上使用碰撞器

你可以为一个新的树木资源添加一个胶囊碰撞器,通过在场景中实例化它、添加碰撞器(菜单:Component->Physics->Capsule Collider)、为修改后的树木对象创建一个新的预物体。当你添加树木到地形中,确保你选择了带有碰撞器的预物体而不是原始的那个。你也应当在地形的Terrain Collider组件检视器中启用Create Tree Colliders。

让树木在风中摇摆

需要做的第一件事是创建一个有风区域。你可以通过从菜单:Game Object->Create General->WindZone来进行。
这里,你需要确保你的树被设置为摇摆的。选择你的树,然后选择Edit Trees->Edit Tree。设置摇摆值为1将导致树进行调整,如果你尚未做这件事。
你可能注意到了,你的树木相当狂暴地动着。为了修正,你可以改变你的摇摆值,但直接在“风区”中设置这些值或许会更简单,而保持你的树的摇摆值设置为1。为了避免树木摇动太大,降低风湍流至0.1到0.3,所有东西将明显低更平缓。如果你不希望所有树都飘向同一个方向,降低Wind Main 值与湍流相同的值。

草地和其它细节

一个地形可以有草丛,和其它小物体,比如覆盖表面的石头。草地使用2D图像进行渲染来表现单个草丛,而其它细节从标准网格中生成。
Terrain with grass

启用细节

在工具栏上的细节按钮启用了草地/细节绘制。
这里写图片描述
一开始,地形没有草地或细节可用,但如果你点击在检视器中的Edit Details按钮,在出现的菜单中将看到Add Grass Texture和Add Detail Mesh选项。出现的窗口将让你选择你希望添加到地形中绘制的资源。
对于草地,窗口是这样的:
The Add Grass Texture window
Detail Texture是表现草地的纹理。一些合适的纹理包含在了Unity的标准资源库中,可以从资源商店里下载。你可也可以自己创建它们。纹理就是一个小图片,其空白区域的alpha通道设置为0(当然“草地”是个专业术语,你可以使用图片来表现花朵,灌木丛,甚至一些像铁丝网之类的人造物体。
Min Width, Min Height, Max Width and Max Height值指定了生成草地的尺寸上下限。为了看着真实,草地用随机“带噪声”模式生成,草地上散落光秃的部位。
Noise Spread值控制替换块的近似尺寸,更大的值导致在给定区域中更大的变化。(技术说明:噪声实际上使用柏林噪声Perlin Noise所生成;噪声的传播取决于作用在地形上x,y位置之间的缩放,以及噪声图像。)在中心的草地替换块,被认为是比在边缘上的更“健康”;Healthy/Dry Color设置用它们的颜色展示草地的健康程度。
最后,当公告板选项被启用,草地图像会被旋转,这样它们永远面向镜头。当你想要展示草地的密集区域时这个选项有用,因为二维图像不可能从哪个方向都能看到。然而,稀疏的草地,单个草丛的旋转变得明显,产生奇怪的效果。
对细节网格,如石头,选项窗口是这样的:
The Add Detail Mesh window
Detail属性用来从你的项目中选择一个预物体来设置,它将用随机的Width和Height值缩放出单个实例。Noise Spread和Healthy/Dry Color值如它们对草地影响那样进行工作(尽管当应用到如石头的物体上时,“健康”的概念扩展了)。渲染模式可以被设置为草地Grass或者Vertex Lit。在草地模式中,场景中的细节物体实例将被抹平为2D图像,像草地纹理那样表现。在Vertex Lit模式中,细节将被如场景中的固定,定点光照物体那样渲染。

风区

你可以通过添加一个或多个带有风区组件的对象,在你的地形上创建风的效果。带有风区的树木将以逼真的动画效果摆动,而风自身将间歇性生成,来产生树木自然摆动的效果。

使用风区

风区对象可以直接创建(菜单:GameObject->3D Object->Wind Zone)或者你可以向场景中已经存在的任何合适物体添加这个组件(菜单:Component->Miscellaneous->Wind Zone)。风区检视器有一些选项来控制它的行为。
Wind Zone inspector
Mode可以被设置为定向(Directional)或球形(Spherical)。在定向模式中,风会同时影响整个地形;而一个球形风从一个用Radius属性定义的球体中向外吹。定向风在创造树木自然运动时更有用,而球形风更适合如爆炸这样的特定效果。
Main属性决定风的整体强度,但这可以使用Turbulence进行一些随机的变化。如前文提到的,风间歇地吹在树上产生更为自然的效果。间歇的强度和时间间隔用Pulse Magnitude和Wind Frequency属性来控制。

粒子系统

风的主要用途是让树木运动,但它也可以影响到被使用外力模块的粒子系统产生的粒子。更深入的细节内容参考粒子系统

如何使用unity3d进行地形编辑

博文 来自: MoMoLily

unity3d--地形系统

阅读数 2912

没有更多推荐了,返回首页