Mecanim 发表于 2022-4-4 09:04

怎么看待Unity 2021.2里最新的terrain地形工具在HDRP和 ...

话不多说,先放最新Demo视频:使用同样一套2021.2 Unity Terrain地形系统,分别在HDRP高清渲染管线和URP通用渲染管线里面实现的效果。

Unity地形系统在HDRP里的效果
https://www.zhihu.com/video/1484283369173643264

Unity地形系统在URP里的效果
https://www.zhihu.com/video/1484285135734841344
大家觉得差别大么?一个是只能跑在PC端和高端主机的高清渲染管线,一个是可以普及到移动端和更多平台的通用渲染管线哦。可以说,在众多可以移动端跨平台实现的效果中,这个URP场景Demo展现的地形和场景环境,渲染质量还是相当不错的。
这次之所以同时公布两个场景,是因为Unity的技术美术团队,在使用HDRP搭建一套用于PC的环境场景之后,专门做了一项迁移,在尽可能保持高质量的效果的前提下,将整个环境移到通用渲染管线用于跨平台覆盖。
和Demo一同公布的,是两个场景的完整免费资源包(文末认领),还有一套如何实现效果的技巧和方法。
以下是实现方法。
使用最新的Terrain Tools

Terrain Tools地形工具包是在2021.2 Tech Stream版中验证完成,目前可在Package Manager和Worldbuilding功能集中安装。地形工具包配备了额外的地形画笔和实用的工具。


内容在Unity引擎与外部DCC工具间的流程

在Terrain Demo项目的制作前期,Unity技术美术团队(TA)挑出了几个关键要素予以着重关注,并最终决定优先制作详细的高度图和密集的植被。
技术美术团队使用了程序化地形生成工具Gaea来生成高清heightmap(高度图)和splatmap(泼溅图,应用在上层的alpha贴图),再使用Toolbox将这些贴图导入编辑器。在处理高度图时,TA使用了Import Heightmap工具将其应用于一张4x4的平铺地形,比例为4000距离单位。然后又使用Import Splatmap工具将splatmap应用到地形上。这个流程是技术美术团队在制作过程中确立的,它可以支持内容在Gaea和Unity Terrain间的往返编辑。
在初次导入Unity后,便取得了一张非常不错的地形作为基础,其中有部分区域仍需手动调整。
用高度图图章绘制

Stamp Terrain(地形图章)笔刷是一种可以快速修改地形高度、让地形更加逼真的工具。Terrain Sample Asset Pack自己包括几张现成的高度图,当然你也可以用DCC制作自己的高度图。


用Terrain Layer(地形层级)材质绘画

Unity用户都知道,Unity的Terrain材质是应用在一个个的Terrain Layer上的。Paint Texture笔刷支持在场景视图中选取和改变地形材质,而Brush Mask Filters和改进后的Terrain Tools能以更少的步骤生成同样美观的成果。
比如Slope过滤器可将斜坡设为不可绘制的区域。首先在地形的侧表面应用一层草地材质,然后使用Concavity过滤器设定特定弯曲度的土层不受影响。你可以禁用其他过滤器、单独应用某个过滤条件,或者在需要时合并多个过滤器。


https://www.zhihu.com/video/1484496101118533632
软件包中还有额外的雕刻画笔,比如Erosion和Noise效果,在制作中善用这些工具可让地形呈现最佳的效果。
用植被覆盖地形

自2021.2以来,Unity Terrain可以利用GPU来渲染枝叶、实例化细节。这对草地、灌木等地形上密集的植被来说很实用。


在该功能的帮助下,游戏将能在大部分PC上以远高于60帧的速度实例化上百万个细节。比如Demo场景就有超过5000万个三角形在几个不同角度的视图中被渲染。要想启用GPU实例化,请选择Edit Details Mesh > Use GPU Instancing。


带有细节实例的高级着色

实例化细节所支持的自定义材质是HDRP和URP的一大优势。为了最大化材质效果,技术美术师推荐使用Shader Graph来编写草地材质。接下来,带大家来仔细了解下TerrainGrass.shadergraph。
在Shader Graph更新了Custom Interpolators(自定义插值)之后,现在能在更早的Vertex阶段控制顶点,并提高顶点的整体性能。在项目中,风的动画是在Vertex阶段完成的,而草的淡出则借助了颜色与环境遮蔽、摄像机距离来实现。由于场景中有大量随机化实例,且支持放置单独的草丛对象,你完全可以用着色器制作随位置改变的超酷效果,如风吹过草丛、混合底部地形颜色。
然而值得注意的是,LOD Group不兼容地形细节,你可以试着用Prefabs来保存细节,在Shader Graph着色器里或地形上的Detail Distance(细节距离)设置来调整淡出的距离。


利用SpeedTree植被生成技术



众所周知,树木对环境的逼真度至关重要。Demo场景包含了多种源自SpeedTree的自定义树木。SpeedTree是一款程序化植被生成器,可生成适用于所有项目、所有规模的高性能植被。 在整合至Shader Graph后,你现在开箱即能使用SpeedTree的所有功能,包括吹风动画、色调变化、展牌渲染等等。类似于材质实例,Shader Graph的着色器也是可以自定义的,你可以在项目中新建并自由地编辑着色器。打开Import Settings下的Extract Materials来开始定制流程。


树木和细节的绘制与原流程相同,仍旧使用Paint Trees和Paint Details笔刷来绘制。而Terrain Tools的新画笔API将允许你创建自定义画笔。Terrain Module将为你自己的项目制作提供参考。
在支持细节实例、整合了SpeedTree后,Shader Graph支持树木枝叶的高级定制。
用HDRP制作高度逼真的光线



Unity 2021.2的HDRP支持全新的Volumetric Clouds(体积云)系统,可形成高度还原的动态天空。比如,HDRP的Physical Sky(真实物理的天空)系统能以现实中的标准参数生成符合物理学的天空光照。
在TA试着还原的白天环境里,太阳光的强度等同于现实中经大气层削弱后的阳光强度:130000勒克斯,而色温被设置为5800K,接近一个太阳黑子 。然后用Physical Camera的后处理效果模仿真正的摄像机来补偿光线的色温。
铺设开来的低矮草丛没必要投下阴影,不然它不仅会产生不小的渲染负担,而且还显得过于虚假、不吸引人。为此TA只采用了少数几种方法来为Terrain Detail对象加上合适的光照和阴影,如成本较低、效果较理想的Contact Shadows。
类似草丛及其他低矮的植被都共享一个环境光探针,以提高渲染性能。这些对象如若无遮挡地接收天空光照往往会导致亮度过高。为此,TA应用了一个单独的“baking sky”体积,降低天空光照的曝光率并生成一种环境光探针,在降低草从光照强度的同时保留天空的视觉表现。
从HDRP搬到URP

Unity技术美术团队的目标是在两条可编程渲染管线中展示新的Terrain,这对整个团队来说是一次很好的学习机会。
TerrainData资源可在HDRP和URP项目之间共享。先在HDRP项目中制作了整张Terrain,在铺设完材质和植被后将TerrainData资源导入了URP项目。还将Terrain地块保存为了Prefab,加快了向URP的移植过程。
两个项目的地形比例与分辨率设置完全相同,但HDRP采用了以高度为准的材质混合模式,而URP为了最大化图像保真度,默认采用阿尔法混合模式。况且,HDRP支持最多八个Terrain层级相互混合。
技术美术团队精心设置了两个项目中的光照和后处理,尽可能地利用起最新的渲染功能。在HDRP项目中应用了前边的体积云和程序化天空。这片程序化天空随后被烘焙成纹理,用作URP项目的HDRI天空。
两者的雾气效果处理方式各有不同。TA在HDRP中使用了体积雾来制作湖周围贴地的雾气,在URP中则用Visual Effect Graph制作了一种自定义的粒子效果。
下方是两者所用功能的大概比较:


最大化Unity Terrain项目性能

对实时3D互动体验来说,运行性能非常关键,可以采用了几种方法来改善性能。 HDRP和URP的Render Pipeline配置文件支持为每一个运行平台创建各自的自定义设置。以URP项目为例,分别创建高质量和低质量两种配置文件,仅在高质量配置下启用高清阴影贴图和HDR功能。如此一来,你就能在Project Settings > Quality设置下轻松修改配置。事实上,你可以直接到Graphics设置中切换Render Pipeline配置文件,在编辑器中直接切换和预览场景的各种设置。


除了性能相关的Project Level设置外,还优化了部分地形内容。例如在HDRP场景中,降低了远处地形块的分辨率,但此类优化只应在地形绘制完成后进行。否则,不同的分辨率会导致相邻地块的绘制结果出现不同。
当运行于低端平台时,密集的细节是最常见的性能杀手。这时,地形必须有更少的顶点数。在HDRP场景中,将细节密度设置为0.75,在摄像机所在的中心地块上将近处剔除距离设为了145米。你可以自行实验各种细节密度与剔除距离的参数组合,找出最适合的配置。此外,你可以调整树木的LOD距离,更早地应用LOD和Billboard展牌,取得一定的性能收益。
如果是URP项目想运行在不支持GPU实例化、或硬件配置非常有限的平台上,你可以选择用Vertex Lit模式来渲染地形细节。不同于实例化细节,该模式不支持阴影、双面渲染或alpha通道裁剪。
<hr/>Unity HDRP地形演示场景资源下载:Unity Terrain - HDRP Demo Scene | 3D Environments | Unity Asset Store
Unity URP地形演示场景资源下载:Unity Terrain - URP Demo Scene | 3D Environments | Unity Asset Store
英文原文:Experience the new Unity Terrain Demo scenes for HDRP and URP | Unity Blog
中文版:体验HDRP和URP的新Unity Terrain Demo场景 - 技术专栏 - Unity官方开发者社区
页: [1]
查看完整版本: 怎么看待Unity 2021.2里最新的terrain地形工具在HDRP和 ...