Unity2018.3 New Terrain System

gongcqm 2019-06-20 08:49:22
Unity2018.3 New Terrain System

新的功能
1 新的笔刷系统,可以通过图片自定义笔刷,可以保存笔刷,可共用分享。
2 地形图章工具(Stamp terrain tool:可以自定义图案,还可以在使用时调整强度。
3 多地形块生成 :可以在每个地形块周边生成地形,可以统一编辑。
4 贴画绘制功能:功能的完善,有图层的概念,可保存设置,可共用分享。
5 动态改变分辨率:可以改变高度图的分辨率,不影响太多细节。
6 支持GPU instancing:可以减少CPU的开销。
7 绘制工具扩展:这个工具需要在Git上下载TerrainToolSamples,可以丰富笔刷。
8 多个人共同编辑不同的地形块。
测试结果
经过测试,地形系统的创建多个连续的地形是可行的,要注意一点就是地形的设置,每一块地形的设置都可以单独调整,也就是说在制作整个地形时,最好先制作一块地形,调整好状态,然后再创建剩下的地形,经过测试在调整细节上,还是需要每一块地形的设置单独调整。
树木和花草,小物体都只能支持单独物体,不能使用组合物体进行绘制,比如为一个物体添加一个空的父节点,那么加入这个物体到树木笔刷中,是绘制不出物体的。树木尽量都不要那种镂空的形状,材质的话,尽量只使用颜色贴图的这一种,不需要使用法线高光,以及AO,因为远处看不到那么多细节。
关于贴图,需要网上找多张地表的无缝贴图,需要这些贴图来绘制地表。贴图现在只能手动绘制。
自定义笔刷功能,经过测试是可用的,并且效果不错。有了这个功能,那么就可以定义一些通用山的形状,山体就可以直接刷出来。
对于Stamp terrain tool工具也有很大作用。可以定义一些地形山脉,一笔就可以绘制一条山脉的形状。效果图如下

对于建筑,还是要使用以前的解决方案,虽然建筑可以刷出来,但是不能旋转操作。
在运行状态和编辑器下都可以对地形进行编辑的,这刚好配合了自定义工具的方案。
植物树木的Shader尽量使用自带的植被shader:Nature/Tree Soft Occlusion Leaves。如果不使用这个shader,警告提示Otherwise billboarding/lighting will not work correctly。
绘制工具扩展:TerrainToolSamples已经下载导入,导入后兼容性很好。下面是这些笔刷的测试和使用方法。导入工具三种类如下:
1 Utility中的笔刷
1.1 Bridge:是在两点间绘制一条直线的功能。通过参数调整可以绘制有变化的直线区域。
1.2 Clone Stamp:可以复制形状,可以复制贴图,和PS中的图章工具类似。
1.3 Mesh Stamp:可以使用自定义的模型来绘制地面模型
1.4 Sharpen Height:可以锐化形状,这个功能和Smooth Height相反。
1.5 Slope Flatten Height:处理斜面的均匀过渡功能。
2 Erosion笔刷
这类型不刷是模仿山体腐蚀的效果,对做一些特殊的地形很好,比如下面的这些形状



3 Transform下的笔刷
这些笔刷主要是地面点位置调整,如捏,拖,扭曲。
3.1 Pinch Height:就是捏,把地形往中间挤
3.2 Smudge Height:就类似拖,画出一笔由大到小有高到低的形状。
3.3 Twist Height:把一条直线进行顺时针旋转形状。

总结
经过测试,unity2018新的地形系统可以在编辑模式下和运行状态下对地形进行调整,包括创建多块地形块,山脉的绘制,地形贴图的绘制,树木花草的绘制。并且可以自定义笔刷,自定义笔刷可以提升绘制地形的效率。对应建筑还是需要使用手动摆放的方式来制作。总的来说已经可以在我们的列车驾驶项目中使用,并且也是非常好控制的地形系统,在运行状态下可以看到列车轨道,可以很好的控制地形和铁轨的吻合。并且地形的编辑是可以多个人同时编辑不同的地形块的,只需要提交单独的New Terrain.asset文件就可以,这就需要在开始就把这一段路线的地形块创建好,这样就可以多个人同时编辑不同的地形块来加快开发速度了,唯一要注意的是相邻地形块的编辑。
在使用新的地形系统需要准备的工作:
1绘制地面的无缝贴图,包括草地,岩石,土地等贴图。找到一些百度网盘的资源:链接:http://pan.baidu.com/s/1bZDsom 密码:m2gy。这个资源还没有下载。
2创建一些自定义的笔刷。
3准备树木花草资源,这些资源需要特别注意shader的使用。
4 需要在运行状态对沿途的地形进行调整绘制,需要花费较长的时间。
5 一次把地形块都创建完毕,因为添加地形块同时只能一个人操作场景,提交场景。
6 开会分工绘制地形。

缺点:
1需要手动调整每一个细节,可控性高了,但是时间会花费较多


为什么现在项目不适合其他的插件和工具来制作地形
在考虑列车驾驶的地形时,也查找很多能够制作地形的插件工具,这些工具很多都是对unity自带地形的扩充和丰富,很多地形可以调整曲线来生成山脉,贴图。但是我们的列车项目是要根据真实地形或者接近真实地形来制作,那么就需要很多手动的调整,对地形高度的调整,这些调整需要根据轨道高度来调整,地形需要和轨道吻合,这是现在了解工具没有办法做到的。
World machine工具只能导出一下高度图来提供给untiy的地形进行生成,也没有办法和我们的铁轨进行一个很匹配的吻合,这还是说的地形,对于地形上的贴图也是个比较麻烦的事情,比较我们的地形上多块小地形的拼接后的结果。并且这些软件收费后才能导出高精度的地形。
MapMagic也是一块很好的插件,通过定义节点来控制地形,地表贴图,树木花草,物体的放置,多块地形的链接,就是不可以使用笔刷进行再次编辑,因为这些地形的噪点生成都是程序节点控制的,只要再次创建生成,那么以前笔刷制作的地形就会被覆盖。但是这个插件可以制作无缝的无限地形,制作飞行类的地形就很适合。并且这个插件的学习成不也很高,首先要熟悉节点,节点编程。这款插件我只测试了免费体验版本,这个插件正式版是需要购买。这个插件和我们现在的项目有一点不合适就是我们会路过城镇,这些地方是需要放置楼房的而不是树木石头,这一点很难控制。这个插件的免费版本我们虽然不能使用,但是我可以使用一些里面的贴图,树木,花草资源,基本也够现在的项目使用。导出的资源为MapMagicAssets.unitypackage,已经导入到列车驾驶项目中。

测试结果展示
我只是使用了一种贴图,一种植物,一种笔刷,没有使用从MapMagic中获取的资源,只做简单的测试结果如下,只做技术研究,不深入美术细节。地形效果如下:


我使用了MapMagic中的一两种资源,在上面的地形基础上绘制了地表贴图,添加了一种树木,效果如下:




...全文
125 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongcqm 2019-06-20
  • 打赏
  • 举报
回复
学习笔记,学习笔记,请大家指教

2,543

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧