步仿野数骤 3):设置地形参数,如下图所示,具体参数含义如下表所示。
参 数 含 义 功 能 Depth 深度 根据文件格式设置,可备首以是8位或16位 Width 宽度 设置高度图的宽 Height 高度 设置高度图的高脊悔 Byte Order 字节顺序 根据文件格式设置,可以是Mac或Windows Terrain Size 地形大小 定义地形的大小
步骤 4):创建好后,单击 Play 按钮进行测试,即可观察到基于高度图创建出来的地形效果,如下图所示。
Unity3D中的地形类似于Maya中使用置换贴图来变形高段数的多边形平面,其原理是自动创建一个中等多边形密度的mesh plane(多边形平面),然后指定一张16bit的灰阶图作为height map(高差图),并根据mesh各个顶点所对应的灰度数值沿着Y轴改变该顶点的高度,形成高低起伏的复杂地形。
Unity3D内置了一套简单的brush(笔刷)工具来方便用户对地形物体的编辑修改。
通过菜单 GameObject > 3D Object > Terrain 可以创建一个Terrain (地形)。
Terrain Settings是对Terrain整体的参数设置面板。
最上面的一排按钮分别用来对地形及植被进行“刷制”的工具面板切换,最右边的 Terrain Setting 面板是针对地形整体的设置,这里挑一些常用的重点的来讲:
按下鼠标左键开始提升地形高度,如果同时按住 shift 键,则降低地形高度直到0。
直接刷出特定高度,按住 shift 键获取某一点的高度。非常适合用来刷出非水平面高度的平整地形,比如山顶或山间的一块平整地面等等。同时如果场景中有水面,由于Terrain不能刷出水平面以下的地形(最低刷到水平面),可以首先将全部地形提升到一定高度,再将水域地形刷低。
相当于光滑笔刷工具
在地形表面上绘制贴图。
首先需要在Textures栏中点击 Edit Textures... ,再选择 Add Texture 以添加一层贴图。
在这个“添加地形贴图”面板中我们可以设置一张颜色贴图和一张法线贴图,并指定贴图的重复度。如果检测出颜色贴图含有Alpha通道,就会将这个Alpha通道与作为光滑度的贴图,否则就会出现一个Smoothness参数供我们调节这一层表面的光滑度,此外还提供一个Metallic参数供我们调节这一层表面的金属颜色。
这里的贴图都需要处理成无缝贴图,否则场景中会出现明显的接缝。贴图不需要特别大,因为重复度会被设置得比较高,通常512或者1024分辨率启颤的贴图就可以了。
第一层贴图会默认覆盖整个地形区域,从第二层(从左往悄早败右)开始,添加好贴图以后需要在地形上刷出该层贴图的出现范围。
需要编辑各层的贴图设置只需点击 Edit Textures... > Edit Texture... ,需要删除贴图层就点击 Edit Textures... > Remove Texture 。
在地形上刷出树来。
按下鼠标左键开始刷树,按住 Shift 键再刷可以删除已经刷出来的树,按住 Ctrl 键再刷可睁滑以删除当前选择的特定类型的树。
在Trees栏点击 Edit Trees... ,再选择 Add Tree ,可以添加一个GameObject作为“树”。这个物体可以是任意GameObject,并不一定非要是Tree Object。
然后就可以用鼠标在地形表面“刷”出这类树来了,同时也会出现具体的Settings参数。
我们可以添加多种type的树,然后一层层刷出复杂的森林结构。
同样的,我们也可以点击 Edit Trees... > Edit Tree 给树更换GameObject,或点击 Edit Trees... > Remove Tree 删除某一层的树。
在地形上刷出细节物体,通常用来做草。
按下鼠标左键开始刷细节物体,按住 Shift 键再刷可以删除已经刷出来的细节物体,按住 Ctrl 键再刷可以删除当前选择的特定类型的细节物体。
在Details栏点击 Edit Details... ,再选择 Add Grass Texture ,打开Add Grass Texture面板设置新建“草贴图”的参数:
在Details栏点击 Edit Details... ,再选择 Add Detail Mesh ,打开Add Detail Mesh面板设置新建“细节面片”的参数:
打开Mudbox
在开始之前,我们需要设置一些变量。
调整FOV视角层的FOV参数来宴大匹配你Unity上面的摄像机FOV值。这样就能得到一个好点的刻度调整以及均衡的视角。
将工具的雕刻值方向只设置Y。由于高度地图指示存储高度信息,我们只需要多边形向上在Y轴移动。
为雕刻工具选择一个好的邮戳图片。可以在制作完基本形状后再做。Bw_cliffFace.tif邮戳在岩石表面运行起来效果不错。
开始雕刻地形,直到你满意为止。
完成之后,你的地形如下图所示:
现在要导出我们地形的高度地图来在机器世界里使用!
为此我们导入简单的屏幕OBJ文件到场景中来映射高多边地形数据到平、低多边的平面。
之后到UV和地图->提取纹理地图->新 *** 作
选择移置地图并调整下面的参数:
目标模型->添加低多边平面
源模型->添加高多边平面地形
搜索距离->用最佳猜想试验,如果在高度地图中得到非人工的则进行调整
图片尺寸->我们用2048*2048分辨率的
基本文件名字->选择你的文件名字并选择TIFF16位整数
点击提取来制作你的高度地图
制作过程完毕后,你会得到一个2048*2048的图片。
添加地形过程详细信息
我们打开机器世界并设置一些节点。
处理各种参数的时候最好将分辨率设为一个较低的值(513*513),这样会加速构建时间。一旦你觉得地形不错了你就可以将分辨率增加到2049*2049.
你可以在项目设置菜单里更改分辨率。
机器世界里对每个节点都做了很多预设。只需要尝试不同设置即可。
创建一个新的高度地图
首先我们需要生成器列表中的一个文件输入节点来加载我们的高度地图。双击节点选择你的TIF高度地图文件。你可以谅解不同规格的节点到文件输出模块的高度域
最终谅解一输出列表中的高度输出节点到你更改环节中最后的一个模块的高度域输出即可
双击高度输出节点并选择一个文件名字
选择RAW16作为文件格式,将之前的.r16文件后缀名改为.raw
点击写出到硬盘!
创建一个splat地图
Splat地图是根据其水平高度来对地形进行纹理化的。
因此我必须将地形的高度信息分离到单独的通道来获取器RGBA值。我们会使用选择器列表中的选择坡度和选择高度模块。
我们的节点如下所示:
坡度选择器可以只选择来自给定高度的数据来配置地形数据。
如果最大值和最小值跟其他坡度选择器重叠,你就会获得最好的结果。
由于选择器只有一个高度位域输出,我们必须使用合并器列表中的通道合并,然后连接高度位域到通道合并器输入的红、绿、蓝。
最后我们连接来自输出列表中的位图输出节点来将我们的splat地图导出为一个16位PNG图片。
创建标准地图
标准地图是为地形添加结构的一种很好的方式。为了导出一个标准地图我们需要从转换列表中添加一个标准地图制作节点,然后将其连接到一个位图输出。
创建颜色地图
最后我们需要用转换列表中的颜色节点来制作一个颜色地图。
详细情况是我们将通过选择器列表中的选择顶点节点来导出一个曲率地图。
为了导出图片文件我们需要连接一个高度输出和一个位图输出节点。
我们将用Photoshop将曲率地图和颜色地图合并。不断对透明度和混合模式进行调整直到你满意为止。
如果你想更深入的了解使用Mudbox创建地形,在CryEngine和UDK里有一个好的更加深入的教程。
下面第二部分处理将地图导入到CryEngine,我们将慧祥拦在下面的环节中涵盖Unity的部分。
你处理完毕后应该会得到四个图片和一个高度地图的源数据文件。
重要:为了用ats颜色地图终极地形渐变器,你序号将它们在Y轴翻转。
将地形和地图导入到Unity中
打开Unity并将地图添加到项目里。
额外需要添加至少四个纹理,以便在地形中使用。
你可以从Unity素材商店里花费10美金购买ats颜色地图终极地形渐变器,我们要用到它的,它可是物超所值哦。
用通过游戏前胡对象->创建其他->地形来创建一个新的地形。
到你新创建地形对象的设置列表中,设置高度地图的分辨率为2049,并点击导入源按钮啦导入你的高度地形的源文件。
使用ats颜色地图顶级地形渐变器
启动ats颜色地图渐变器有点复杂,但是包里的文档还是不错的。
创建好地形最好的方法就是遵循手册里的步骤。无论如何,下面是建立渐变器的大概步骤。
至少添加四个地形纹理到地形着色工具中
在地形中添加CustomTerrainScriptColorMapUltraU4.cs脚本
在添加颜色地图脚本的时候,设定颜色地图并用地形上的新编辑器处理标准地图
添加splatmap然后选择应用splatd地图
为防止处理splat地图格式时候出错,你可以在Unity里更改图片文件的导入格式
通过添加地形纹理的标准地图到槽里来创建合并的标准地图,然后导出新生成的合并标准地图
为每个纹理无缝混合生成平均的颜色
创建一个新材料的地形
现在你应该在Unity里得到了一个不错的地形了。
如果在使用ats Colormap UL TRA地形渐变器过程中有什么问题,请查看包里的用户手册。里面很详细,你应该可以解决任何问题。
下面是我们刚才创建的地形。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)