1 terrain地形

目前地形方面terrain已经成为了unity开发的主流地形,好处是,可以用笔刷直接控制颜色,通过参数控制地形大小,以及无缝衔接,目前2019版本以上的unity已经支持地形嵌套,分模块去生成不同的地形块。并且无缝衔接。

unity 沿着地形行走 unity物体穿过地形_unity 沿着地形行走


下面介绍一下地形参数:

* Base Terrain:基本地形设置

	*

Draw:是否显示该地形
*
Pixel Error:贴图和地形之间的准确度,值越高越不准,但系统负担越小
*
Pixel Map Dist.:在多少距离以外地形贴图将自动转为较低分辨率(以提高效率)
*
Cast Shadow:是否投射阴影(如果是很平的地形可以不投射阴影)
*
Material:地形使用的材质类型
*
Reflection Probes:地形是否会被反射探球所计算(也就是说是不是能出现在反射贴图里面)
*
Thickness:在发生碰撞时,该地形向-y方向延伸的厚度(用来防止高速物体穿过较薄的地形)
*
Tree & Detail Objects:树和细节物体

*

Detail Distance:在多少米视距范围内显示Details物体
*
Collect Detail Patches
-Detail Density:Details物体的密度(1单位面积内最多出现多少个Detail物体)
*
Tree Distance:在多少米视距范围内显示Tree物体
*
Billboard Start:多少米以外Tree物体开始显示为一张贴图
*
Fade Length:从多少米以外Tree物体开始被逐渐替换成贴图
*
Max Mesh Trees:场景中最多出现多少颗真正的多边形树(也就是说超过这个数量的树不论距离摄影机的距离有没有达到标准都会被替换成一张贴图),这个值太小的话,“跳帧”现象会非常明显
*
Wind Settings for Grass:风和草的设定

*

Speed:风速,风速越快,草的摆动越大
*
Size:草物体的基础大小
*
Bending:草物体被风吹弯的最大程度
*
Grass Tint:对草物体统一添加一个颜色,通常会设置为与地面颜色接近的颜色
*
Resolution:地形分辨率

*

Terrain Width:地形最大宽度(米)
*
Terrain Length:地形最大长度(米),所以默认500×500就是500米×500米,1/4平方公里区域范围
*
Terrain Height:地形最大高度(米),这个值决定了我们能够刷出的最高的地形高度
*
Heightmap Resolution:刷出来的高差图的分辨率,513的话代表一个像素值控制大概1米区域的地貌,由于我们的笔刷是按照像素来规定大小的,如果我们在一个较低的Heightmap Resolution下刷好地面以后修改Heightmap Resolution为一个较高的值,会发现我们刷好的范围会变成一个角落里的一小块地形,所以千万不要刷到一半的时候再去修改这个数值
*
Detail Resolution:
*
Detail Resolution Per Patch:
*
Control Texture Resolution:控制贴图的分辨率,所谓控制贴图是说控制各层贴图的“透明通道”的分辨率,比如基层贴图是泥土,上层贴图是草地,那么草地贴图本身是完全覆盖的,但通过一个“控制贴图”的灰度来决定每个点草地贴图与泥土贴图如何融合
*
Base Texture Resolution:对于很远处的地形,Unity3D会切换成显示一个自动创建好的“融合”了各层贴图效果的Basemap,这样比去计算多层贴图融合要高效很多,这个参数就是设置这个Basemap的分辨率的
*
Heightmap:这里可以导入RAW图像作为heightmap使用,或者将当前的heightmap导出成RAW图像。我们可以从地理数据库中获得真实的某一地区的地形高差图,也可以利用第三方工具(如:Bryce)创建地形然后将高差图导出给Unity3D使用。

unity 沿着地形行走 unity物体穿过地形_贴图_02


unity 沿着地形行走 unity物体穿过地形_unity 沿着地形行走_03

* Settings:

	*

Brush Size:笔刷大小
*
Opacity:笔刷透明度
*
Lighting:关于光照烘焙的详细设置

Place Trees

* Brush Size:笔刷大小
*

Tree Density:树的密度,还可以点击Mass Place Trees按钮来用一大批树布满整个地形
*
Tree Height:树的高度(Y轴缩放),如果勾选Random?则可以设置一个范围,系统自动随机生成不同高度的树
*
Lock Width to Height:是否锁定缩放比例,如果不锁定,可以在下面Tree Width参数中设定树的宽度(X轴和Z轴一定是等比缩放的)
*
Color Variation:颜色的随机变化程度,会自动让不同的树的颜色产生一定的差异
*
Lighting:关于光照烘焙的详细设置

Place Details

按下鼠标左键开始刷细节物体,按住Shift键再刷可以删除已经刷出来的细节物体,按住Ctrl键再刷可以删除当前选择的特定类型的细节物体。
在Details栏点击Edit Details…,再选择Add Grass Texture,打开Add Grass Texture面板设置新建“草贴图”的参数:

* Detail Texture:选择一张花或者草的贴图
*

Min Width、Max Width、Min Height、Max Height:单个草物体的最大最小的宽高值
*
Noise Spread:添加一点分布随机度
*
Healthy Color:草的健康颜色(会被tint到贴图的上部)
*
Dry Color:草的干枯颜色(会被tint到贴图的底部)
*
Billboard:是否以永远面向摄像机的单面形式生成单个草物体,如果选否的话就会以十字交叉双平面方式来生成单个草物体

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

* Detail:选择一个prefab作为细节模型
*

Noise Spread:添加一点分布随机度
*
Min Width、Max Width、Min Height、Max Height:单个细节模型的最大最小的宽高值
*
Healthy Color:细节模型的健康颜色(会被tint到顶部)
*
Dry Color:细节模型的干枯颜色(会被tint到底部)
*
Render Mode:细节模型的渲染模式,选择Grass的话模型会被压扁成一个薄片,然后用草物体的渲染方式来渲染,选择Vertex Lit的话模型会以顶点照明的方式接受场景光照