请选择 进入手机版 | 继续访问电脑版

查看: 1883|回复: 0

[技术] Unity 2018.3正式版功能介绍(3)-图形

[复制链接]

1287

主题

2010

帖子

2万

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
27055
QQ
发表于 2018-12-23 07:41:00 | 显示全部楼层 |阅读模式
图形在Unity中尤为重要,在本文中我们将介绍Unity 2018.3正式版中以下的功能和改进。
1、Visual Effect Graph
2、光照
3、GPU渐进式光照贴图
4、轻量级渲染管线LWRP
5、高清晰渲染管线HDRP
6、移除MovieTexture功能

了解更多Unity 2018.3正式版功能:
1、Unity 2018.3正式版功能介绍(1):预制件及工作流程、编辑器、影视、世界构建功能和工具、地形系统、资源包管理器及Unity Hub
2、Unity 2018.3正式版功能介绍(2):引擎、2D、粒子、平台、DCC、TextMesh

下载Unity 2018.3
https://unity3d.com/get-unity/update

Visual Effect Graph(预览版)
全新的Visual Effect Graph在Unity 2018.3中作为预览版提供,需结合HDRP使用。你可以使用它来制作可配置,可重用的次世代效果,还可以在GPU上处理数百万个粒子。

Visual Effect Graph受到主流电影特效软件的启发,提供了灵活且易于使用的节点系统,能够帮助艺术家为游戏等交互式内容创作惊艳的视觉效果。

你可以通过拖动预制节点实现简单效果,或者使用节点来创作更高级的效果。Visual Effect Graph具有高效的响应性,你可以在创作过程中实时查看所有改动。Visual Effect Graph架构使你可以在GPU上处理数百万个粒子,而不会影响性能。

观看Visual Effect Graph演示项目

该工具的每个资源都包含一个视图,其中包含独立效果的所有行为。效果包括网格,粒子和其它模拟容器的任意组合,所有内容都将由Visual Effect Graph进行处理,该工具还与Timeline等其它工具集成。

Visual Effect Graph目前仅支持HDRP,针对LWRP的支持将在明年发布。

观看Visual Effect Graph介绍视频

光照
Unity 2018.3为精准光源加入了可配置的衰减(Configurable Falloff)功能。对CPU和GPU渐进式光照贴图的这一项改动意味着,即使未使用可编程脚本渲染管线SRP时,也可以通过脚本配置烘焙光照,以使用符合物理原理的“平方反比衰减”效果。

最终烘焙的光照会更接近现实中的光照效果,具有明亮的中心区域和漫长缓慢的衰减过程。这样会得到了更逼真的光照效果,同时改进了光照贴图场景的总体可信度。

01.png


我们还实现了Light Probe Deringing,你可以开启光照探针分组(Light Probe Group),从而在探针实现窗口化,窗口化可以减少负值和条带效应。

02.png


Unity 2018.3加入了圆盘区域光(Disk Area Light),该功能针对CPU和GPU渐进式光照贴图使用。此区域光形状对建筑可视化和其它需要圆形光孔的应用非常实用。这些情况下,使用矩形光形状并不适合。Disc光提供了其它有趣的特性,例如:较小的热区,面向光照边缘的较柔和半阴影。

03.png


GPU渐进式光照贴图(Windows预览版)
在Unity 2018.3 Windows版本中提供了预览版GPU渐进式光照贴图。在具有强大GPU的计算机上,使用GPU渐进式光照贴图能以更快的速度烘焙光照贴图。

我们基于Radeon Rays和OpenCL构建了一个纯粹基于路径跟踪的算法,用于在Unity中烘焙光照贴图,带来超过CPU 10倍的性能提升效果。

你可以在光照窗口尝试使用GPU渐进式光照贴图,该功能适用于所有内存超过2GB的GPU,对于大型光照贴图,我们推荐使用更大的内存配置。

04.png


Unity 2018.3支持渐进式更新,多个光照贴图、直接光照、间接光照、AO、所有光线类型、环境光照、发射、多重反射、GPU合成、剔除和融合测试。

由于GPU渐进式光照贴图功能是预览版功能,目前的功能有限,未来它将支持Unity中的所有光照功能。在Unity 2019.1中,我们将加入对Linux和macOS系统的支持。

轻量级渲染管线LWRP(预览版)
我们对轻量级渲染管线LWRP进行了改进,加入了基于物理的光照衰减,自定义渲染器和自定义渲染通道插入。预计Unity 2019.1中LWRP能结束预览阶段并应用于实际制作中。

1、基于物理的光照衰减
LWRP现在使用平方反比衰减来实现实时光照和烘焙光照。这在不同光照条件下提供更准确的结果,并且可以照亮较小范围,从而改善根据对象进行光线剔除的性能。从之前的版本更新至4.1.0-preview版时,你需要更新部分光照设置。

2、改进的阴影质量
深度和法线阴影偏差的偏移现在通过阴影贴图体素大小进行调整。这样能让你在调整阴影瑕疵进行更好的控制。无论阴影联级和阴影分辨率有多大,设置都会生效。

3、自定义渲染通道
LWRP现在提供一个的简单工作流进行扩展渲染器。你可以使用ScriptableRenderPass 类创建自定义渲染通道,并在渲染器中进行调度。

在LWRP中有二种插入自定义渲染通道的方法。
a、你可以通过实现IRendererSetup来完全重写LWRP渲染器。渲染器设置是可以附加到摄像机的脚本,它会执行所有在脚本中注册的ScriptableRenderPasses。
b、你可以使用它来实现不同渲染策略,例如:正向渲染和延迟渲染。

下图中,我们使用ScriptableRenderPass来创建平面反射纹理。然后我们在Shader Graph着色器视图使用该纹理,将其应用于金属地面。

05.png


下图中,我们转换了内置渲染管线的指令缓冲区示例,以通过ScriptableRenderPass来实现模糊的折射效果。

06.png


4、文档更新
单击资源包管理器窗口的View Documentation按钮,即可查看LWRP的文档。我们新增了关于Lit和Simple Lit等着色器的文档,预计在Unity 2019.1,我们将提供完整的LWRP文档。

5、性能提升
我们在GLES2中添加了着色点和聚光灯的改进,以及针对支持HSR的GPU的改进。

有关更多详情,请查看资源包管理器中提供的LWRP更新日志。你也可以获取Boat Attack演示项目,该项目用于帮助开发者对LWRP进行测试和开发。

下载Boat Attack演示项目:
https://github.com/Verasl/BoatAttack

6、对比内置渲染管线和LWRP
内置渲染管线会以对象级别剔除光照,它会在单独的渲染通道对每个光照进行着色。LWRP会根据对象剔除光照,但LWRP会在单通道对所有光照着色,从而减少批处理。

下面的屏幕截图展示了Angry Bots 2演示项目中的场景。

07.png


我们在该场景中对比了Unity内置管线(左)和LWRP(右)中的实时光照和阴影,我们在内置渲染管线中使用了正向渲染路径。

二个场景使用了相同的光照设置:
a、1个定向光(柔和阴影)
b、2个点光源(无阴影)
c、2个聚光灯(柔和阴影)

为了使光照效果和内置渲染管线的一致,我们提高了LWRP场景中的点光源和聚光灯密度,这并不会造成任何额外的性能消耗。

如下图所示,LWRP中的实时光照和阴影(右图)和内置渲染管线中的效果(左图)大致相同,但是批处理和绘图调用的次数较少。

08.png


高清晰渲染管线HDRP(预览版)
高清晰渲染管线HDRP专注于实现高端视觉效果和游戏。在Unity 2018.3中,我们为HDRP添加并改进了多项功能,以实现更好的视觉质量,并为艺术家提供更好的工作流程。新版本更稳定,能够更好地支持Mac的Metal、PC的Vulkan、Xbox One和PS4。

我们为VR和MSAA加入了初步支持。UI经过更新后可以检视更多HDRP元素,包括:摄像机、光线、反射探针和材质。我们还加入了新光照模型,让开发者可以制作更复杂的材质。

请注意:新版本的HDRP模板使用HDRP 4.1.0版资源包。如果希望使用到本文介绍的功能,我们推荐在安装模板后将资源包升级为4.6.0版。

1、平台支持,性能和稳定性
Unity 2018.3增加了对Metal API和Vulkan API更好的支持,减少瑕疵并实现了更好的性能。透明对象的雾和贴花仍存在瑕疵,但总体体验已经有了显著提升。

HDRP为VR提供了初步支持,VR需要使用正向渲染模式,但仍不支持摄像机相关的渲染,目前光照和体积仍然存在问题。

通过结合VR和正向渲染,新版本加入了对MSAA的初步支持。除屏幕空间反射外,所有其它效果目前都使用MSAA,例如:SSAO,接触阴影。但是MSAA会为渲染增加额外开销,所以请应谨慎使用。

09.jpg
10.png


Unity 2018.3为PS4和XBox One提供了更好的HDRP体验。新版本可以使用异步计算管线执行多种效果,包括:屏幕空间环境遮蔽、屏幕空间反射、密度体积的体素化、光照剔除和材质分类,所有这些效果都可以与阴影渲染通道并行执行。

正向渲染路径通过使用“标量化”(Scalarization)技术得到了改进,这项技术特别用于主机平台使用的AMD GCN架构。

现在我们可以通过渲染管线设置(Render Pipeline Settings)更精细地控制构建版本中包含的着色器变体。如果将不会用到的变体排除掉,则可以大幅减少构建时间。同样的,更多着色器变体会移除掉。

2、改进的UI和摄像机控制
HDRP的UX已经简化,你现在可以通过FrameSettings进行更好的控制。由于FrameSettings现在支持和后期处理相同的重写系统,它可以继承RenderPipelineSettings的数值并重写它们。摄像机现在支持Unity内置渲染管线的物理摄像机参数化功能。

11.png


在光线和反射探针的检视窗口现在提供了高级设置的开关,因此UI不会混入许多默认参数。

3、改进的质量和当前功能的控制
体积雾渲染现在通过“深度合成”(Deep Compositing)技术得到了改进,该技术可以让你更好地结合与全局雾相互重叠的密度体积。

此外,体积雾现在可以在远距离以指数雾的形式减少,并且支持高度雾(Height Fog)的激活。体积和密度体积的参数化和控制现在对艺术家更为友好,体积体素的光照性能也得到了改进。

下图中来自定向光并带有阴影的体积效果,可以让你看到通过树木的光束。

12.png


阴影系统现在更稳定,并提供了更多控制。阴影共有三个质量等级:低级(Low),中级(Medium)和高级(High),三个等级对应不同的过滤算法,当前版本中为PCF和PCSS算法。

请注意:你只可以在使用正向渲染路径时,对不同质量模式间进行切换。延迟路径默认使用低质量,低质量目前是主机平台的默认模式。

具有阴影图集的阴影贴图的内存管理也得到了改进。现在屏幕上会有许多可见阴影的预算。此外,阴影框架可以根据距离调整阴影贴图的分辨率,如果没有合适空间,它还会自动调整阴影的大小,以适合阴影图集。这意味着阴影将一直显示,但在它们不适合阴影图集时,阴影的质量会降低。

现在可以独立于阴影贴图启用接触阴影。接触阴影支持定向光,点光源和聚光灯,但一次只可以使用一种光源,我们还改进了质量和性能。

下图为接触阴影启用在定向光时,场景外的效果。

13.png


下图为接触阴影启用在定向光时,场景内的效果。

14.jpg


为了帮助开发者调试阴影,我们还对渲染管线调试(Render Pipeline Debug)窗口加入了新的工具集。现在可以根据每个单独光照,阴影图集,每个阴影贴图的缩放系数,以及阴影蒙版来显示阴影。

我们通过通道选择遮罩(per-channel selection mask)来增强了贴花。使用该功能,你可以创建仅影响部分材质属性的贴花。例如:你可以制作贴花,使其仅修改材质和金属表面的法线属性或光滑度。


它提供二种模式:
a、BaseColor, Normal, Smoothness
b、BaseColor, Normal, Smoothness, Metal和AO(性能较高昂)

15.png


我们改进了贴花的辅助图示,现在支持控制深度偏差和绘制顺序,下图是贴花在FPS示例项目中的运用。

15-1.gif


通过使用正向渲染路径,贴花现在会正确地影响法线缓冲区,从而正确地影响屏幕空间反射。

我们对光照加入了额外的控制。例如:除了Candela和Lumen,光照现在支持EV100和Lux等物理单位。HDRI Sky可以使用Lux单位的数值。

对于定向光,你可以控制高光的形状,从而更好地模仿太阳光盘,点光源和聚光灯拥有更柔和的衰减效果。Light Explorer现在支持HDRP的所有光线类型。

4、对反射系统的改进
Unity 2018.3提供了屏幕空间反射(SSR)。通过使用该功能,你可以对每个光滑表面启用反射,粗糙表面会回退为常规的反射探针和平面反射。

你可以给材质添加标签,使其不接收屏幕空间反射。但要注意,在使用高分辨率时,该效果目前的性能消耗比较高昂。

如下图所示,左边是没有平面反射的场景;右边是具有平面反射的场景。请注意地板对天空的反射效果。

16.jpg


新版本还引入了平面反射(Planar Reflection),你可以使用它在平面获取高质量的反射效果。平面探针组件的行为和反射探针组件一样,只不过前者会实时渲染。平面探针和反射探针拥有相同的控制功能集。

下图为Unity伦敦办公室项目中,反射的运用。

16-1.gif


反射控制:反射探针和平面探针的UI已经更新,从而为艺术家提供更好的工作流程。你现在可以通过FrameSettings来控制实时反射的渲染效果。

5、和内置渲染管线等效的功能
通过使用光照分层功能,你可以标记光照和对象,使具有相同标签的对象只接收特定光源的光照,它也可以在内置渲染管道中使用。在HDRP中,光照架构是不同的,这需要对此功能进行改进。

新版本引入了光照图层,适用于精准光源,区域光,反射探针和平面探针。该功能的第一个版本支持31种光源。目前,它还未能正确处理阴影。

下图中的小龙有不同的光照图层标签。右边是点光源,左边是反射探针。最左边的小龙是蓝色,因为它的标签使它只受蓝光影响。右边第三只深灰色小龙不受到本地反射探针的影响,因为这不匹配其标签。

17.png


地形是内置渲染管线中不兼容HDRP的功能。现在Unity 2018.3版本中加入了Terrain Lit着色器,可兼容内置地形系统。它在单次绘图调用中最多支持8个图层。

Terrain Lit着色器使用和Lit着色器相同的光照模型,但是只提供在LayeredLit着色器中的受限选项。请注意:目前Terrain Lit着色器不支持曲面细分和替换功能。

下图是Terrain Lit材质示例。

17-1.jpg


通过粒子系统支持在内置渲染管道中渲染粒子。在HDRP中,仅支持无光粒子系统着色器。为了在使用受光粒子并在GPU制作效果,新版本支持全新的Visual Effect Graph工具,它可以使用Lit着色器和其简化版,即Simple Lit着色器。简化版着色器为绘制大量受光粒子提供了更好的性能。

如下图所示,右侧的节点视图用于在Visual Effect Graph制作效果。左侧是得到的效果,该效果通过数百万个粒子创建,完全在GPU上运行。

18.png


6、调试工具
调试工具始终很重要,因为它们能够让你跟踪问题并监视性能。新版本中,我们对渲染管线调试窗口(Render Pipeline Debug Windows)加入了一些调试改动:
a、显示单个阴影/阴影图集/阴影缩放系数
b、重写发射的颜色
c、屏幕空间反射调试模式
d、亮度计模式
e、根据类型禁用光照的功能
f、冻结摄像机剔除,以便开发者检查通过摄像机椎体剔除的对象
g、显示光照体积

下图为显示光线体积的示例,图中有一个聚光灯和多个点光源。

19.png


7、新着色器和Shader Graph着色器视图支持
HDRP现在支持Shader Graph着色器视图,这将成为未来开发的主要解决方案。Lit主节点提供Shader Graph版本和内置着色器版本,即Lit、LayeredLit和TerrainLit。其它所有着色器只提供Shader Graph版。以后的着色器也将通过Shader Graph着色器视图来创建。

PBR主节点基于Lit着色器。它使用和LWRP一样的受限功能集,因此你可以制作跨管线使用的资源。Unity 2018.3加入对贴花的支持,以及对PBR主节点的光照分层支持。

Lit着色器现在可以在Shader Graph着色器视图中使用。该着色器可以使用完整的功能集,包括:涂层遮罩、晕彩、透明度、次表面散射和各向异性。然而,它还未支持用于准确混合法线的表面梯度。此外,该版本Shader Graph着色器视图还不支持曲面细分。

请注意,风效果在内置Lit着色器已被禁用,它在Shader Graph着色器视图中启用。如果想模拟风或其它顶点动画,必须使用Shader Graph着色器视图。

下图是我们在使用Shader Graph着色器视图中的HDRP创作精美的资源的示例,该示例项目包含的一个盆景和蝴蝶大量使用了晕彩和半透明效果。后续我们将单独介绍该示例项目的实现以及提供项目下载。

19-1.gif


我们还对Shader Graph着色器视图加入了Fabric(布料)着色器。使用它,你可以制作柔软外表的布料材质,并仿造纤维的散射效果。

Fabric主节点支持二个光照模型:CottonWool(棉毛)和Silk(丝绸),你可以使用二个模型实现各种布料。CottonWool的实现基于索尼图像工作室在Siggraph 2017.发布的最新研究成果,Silk光照模型基于GGX各向异性算法。

下图中,《Windup》项目中,小女孩的衣服使用了布料模型。该网格使用了法线贴图的组合,它能定义Shader Graph着色器视图中制作的衣服模式。

20.jpg


下图为Unity球体上展示的模型。

21.png


StackLit着色器被添加到了Shader Graph着色器视图。请注意,由于在相同资源包加入了Shader Graph版,内置StackLit着色器已从4.4.0版资源包移除。

StackLit着色器是对Lit着色器的改进,它更注重质量而不是性能,因此StackLit着色器不适用于某些游戏。对比Lit着色器,StackLit着色器可以更精准地处理表面的涂层。

最后,StackLit着色器允许开发者无限制地混合所有功能。例如:你可以将各向异性和次表面散射,晕影和模糊参数化混合使用。

22.png


移除MovieTexture功能
Unity 2018.3加入了更快的纹理更新,这有助于消除在主线程上传纹理所使用的时间,并减少在图形线程使用的时间。HoloLens和Windows等平台会得到更好的效果。

我们还加入了音频重采样功能,它允许用户修改视频速度,还能相应地改变音频速度并保持同步。

在Unity 2018.2中,我们开始移除旧MovieTexture功能。如果你的项目仍使用MovieTexture,你应该将项目升级为使用VideoPlayer功能。

由于VideoPlayer和MovieTexture有着本质的区别,可能无法提供自动升级工具。了解更多关于MovieTexture的弃用信息,请访问:
https://forum.unity.com/threads/ ... deprecation.550714/

小结
我们将在下一篇中介绍Unity 2018.3正式版中服务、开发套件以及示例项目,我们还将介绍Unity版本的发布情况,尽请关注!

更多Unity最新功能介绍,尽在Unity官方中文论坛(UnityChina.cn)!
快速回复 返回顶部 返回列表