Notifications
Article
Unity 2019.1正式版功能介绍(4)-图形
Published 5 months ago
613
0
本文我们将介绍Unity 2019.1正式版中图形相关功能与改进,这也是本系列最后一篇文章。

图形

粒子

C# Job System支持
你现在可以使用C# Job System处理粒子数据,不必在脚本和本地代码之间复制粒子数据。
设置时,请创建基于IParticleSystemJob的作业结构,使用SetJob将它附加给粒子系统,在执行本地粒子更新后,该作业结构会从线程中调用。
网格改进
Unity 2019.1包含对网格粒子的一些小改进,例如:通过脚本可以进行查询和指定到每个粒子的网格。
ParticleSystem.Particle结构现在包含获取和设置网格索引的方法。Custom Vertex Streams自定义顶点流有新的Mesh Index流,允许你发送网格索引到着色器,你可以使用它根据独立网格编写着色器代码。
Texture Sheet Animation包含新的Row Mode,它会基于粒子的网格索引选择动画,它可以指定特定动画到效果的每个网格。

Shader Graph着色器视图

Unity 2019.1中,Shader Graph着色器视图脱离预览版,可用于正式生产制作流程。
Shader Graph着色器视图基于可视化节点构建着色器,从而让艺术家不必编写代码就能够轻松自定义外观效果。你可以拖放节点并实时查看结果。无论对于着色器专家还是对于新手而言,即时反馈都让调试和调整过程变得简单。
Shader Graph着色器视图的一个重要新功能是Nested Sub Graphs嵌套子视图功能,它允许你可视化创建自定义节点。
Sub Graphs子视图也可以进行嵌套,因此开发者可以为项目或工作室定义自定义节点内容库。这为技术美术提供了对整个着色器管线的灵活无损控制,从而为实验和创作提供了动力。

轻量级渲染管线LWRP

在Unity 2019.1中,轻量级渲染管线LWRP可用于正式制作流程。LWRP是预制的可编程渲染管线SRP,针对提供高性能图形渲染进行了优化。LWRP具有高度灵活的可配置性,允许开发者在全局或根据摄像机控制渲染设置。
LWRP可以帮助开发者自定义效果设置摄像机深度和颜色纹理,并与Shader Graph着色器视图集成,这种高度可扩展的即插即用架构可以让你创建出自定义渲染通道。
你也可以重写渲染器来实现特定效果,并可针对不同平台调整渲染过程。LWRP的源代码可以在GitHub获取,以便开发者进一步自定义LWRP。
在Unity 2019.1中,我们也添加了Dynamic Scaling动态缩放支持,和UI保留功能,它有助于在高DPI屏幕的设备上渲染游戏时保持UI的清晰效果。
我们增加了SRP Batcher支持和对粒子着色器的多项改进,包括:软粒子和变形效果。我们也对地形着色器和烘焙Lit着色器进行了改进。
Unity 2019.1新增了Custom Renderer自定义渲染系统,以实现更好的进行自定义效果。我们添加了对Visual Effect Graph的初步支持,初始的LWRP支持可用于Unlit着色器,仅限于支持计算功能的平台。
了解LWRP更多信息:https://docs.unity3d.com/Packages/com.unity.render-pipelines.lightweight@5.10/manual/index.html

高清晰渲染管线HDRP(预览版)

HDRP是预制的高保真度可编程渲染管线,旨在面向兼容计算着色器的现代平台。它为开发者提供了用于创作各种高分辨率内容的工具,游戏和演示项目。
在Unity 2019.1中,我们添加了多项新功能,并为艺术家改进了工作流程。这些改动的缺点之一是此前制作完成的部分数据可能不兼容该版本,需要进行重新制作。为了帮助你从Unity 2018.3更新到Unity 2019.1,我们编写了一个迁移指南,在后续微信文章中,会进行分享。
Unity 2019.1版本的HDRP支持PC平台的DX11和DX12、Mac平台的Metal、PC和Linux平台的Vulkan、Xbox One和PS4。HDRP会继续处于预览阶段,直到Unity 2019.3发布。
请注意:Unity 2019.1在HDRP模板提供HDRP 5.7.2版本资源包。为了使用这里列出的新功能,我们建议在安装模板后更新到HDRP 5.12.0或更高版本资源包。
改进平台支持
Unity 2019.1改进了对Linux和Vulkan API的支持,尽管有一些不足之处,但总体性能还是得到了提升。
可用Double-wide双宽VR
Double-wide是VR的缓慢路径,它会并列渲染二个视图。Unity 2019.1提供更为优化的单通道实例化版本,它支持所有HDRP效果,包括:折射、变形、次表面散射、贴花和体积效果。
更多支持功能的详细信息,请访问:https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/VR-in-HDRP
提升性能
HDRP现在使用的Color Buffer格式是RGB111110Float,而不是ARGBHalf,从而实现更快的着色器执行效果和提升总体性能。
在Unity 2019.1中,我们使用快速路径处理只有一个定向光和简单材质的情况。为了节省CPU时间,运动向量对象不再通过深度预处理通道进行二次渲染。变形效果通过模板缓冲区得到优化,经过改进的着色器变体移除功能将减少构建时间。
Unity 2019.1支持Software Dynamic分辨率,它允许开发者在每个平台以不同于UI的大小渲染世界,面向支持平台提供的Hardware Dynamic Resolution硬件动态分辨率支持将在之后推出。你只需要通过C#脚本取得理想分辨率即可。
透明材质现在可以使用“Low Resolution”渲染通道名称,使材质可以渲染为四分之一分辨率,并且呈现类似的视觉质量,它对于大型粒子的Overdraw性能很有效。
改进的UI和摄像机支持
HDRP现在对所有UI元素的多个版本提供更好的支持、文档和工具提示。HDRP还增加了对Multi ViewPort多视口支持,允许你在相同目标渲染多个摄像机,以实现分屏渲染和其它类似行为。
FrameSettings和HDRP资源设置经过了重构,以实现更快的计算速度和更易用的版本,现在它会提供HDRP资源设置对内存和着色器变体的影响信息。我们也加入了SMAA (SMAA 1X)抗锯齿方法的支持,它提供了介于性能(FXAA)和质量(TAA)的中间方法。
After Post-Process渲染通道现在可用于Unlit着色器,在经过后期处理通道后,HDRP会渲染使用该渲染通道的对象,这意味着后期处理不会影响该通道的效果,该通道在渲染3D UI时很实用。
调试模式改进
HDRP现在包含一个Debug选项,冻结用来剔除的摄像机,但摄像机仍可以从渲染的视角移动,让你看到特定场景视图中被剔除的部分。Debug选项也提供了Material PBR验证器和Emissive颜色重写。
渲染管线向导
渲染管线向导会帮助你配置项目设置,以便在使用HDRP时正常工作。它会高亮不正确的配置部分,提供Fix按钮来校正设置,你也可以在此设置新的自定义场景。
其它HDRP改进
贴花效果得到加强,提供更好的Gizmo控制功能,Shader Graph着色器视图支持和不透明贴花的Emissive支持。Recorder录制器现在得到了不错的支持,允许开发者从HDRP录制影片。利用了Sony Pictures Imageworks最近的研究成果,棉毛的Fabric光照模型得到改进。
体积雾经过优化,变得更加准确。我们还更新了密度体积的Gizmo。Light layers光照层允许你标记光线和对象,以便仅让带有相同标记的对象接受特定光源的光照,该功能现在已经有完善的功能,支持正确控制阴影。
次表面散射的Diffusion Profile漫反射配置文件在Unity 2019.1中发生变化,此前,每个项目的Diffusion Profiles List仅限于显示16个配置文件。Diffusion配置文件现在是独立的资源,可以进行分享和发布,每个视图限制16个配置文件。
当前视图中使用的配置文件列表由体积设置控制。Unity 2019.1会自动从旧Diffusion Profile系统迁移数据到新的系统,但不会为Shader Graph着色器视图做相应处理,因此你需要重新制作相关漫反射配置文件。
该版本添加了对透明材质上Motion Vectors运动向量的支持。透明材质可以写入自带的速度,重写之前速度缓冲区的内容,这对头发等Alpha端材质很有用。
新着色器和Shader Graph支持
Unity 2019.1为Shader Graph着色器视图提供多个新的Master Nodes主节点。新的HD Unlit Master Node可以使用跨管线Unlit着色器无法使用的完整功能,例如:变形功能、渲染通道选取功能。
我们还加入了新的AxF Master Node,用于支持X-Rite AxF标准材质格式。AxF材质仅在结合AxF导入器时有用,AxF导入器是Unity Industry Bundle的一部分。AxF导入器会自动填充AxF材质的所有设置。
Unity 2019.1提供了新的Hair Master Node,它使用了对艺术家友好的Kajiya Kay光照模型,具有更好的节能性和更大的灵活性。
HDRP和Shader Graph
我们添加了许多HDRP专用的新节点和新行为。现在HDRP可以采样Scene Color,包括模糊Mipmap,用来模拟粗糙的折射或变形效果,颜色仅适用于透明对象。
Scene Depth节点可以访问原始、线性(0~1之间)或眼部深度。Lit Master Node上添加了Depth Offset输入,从而在视图向量的方向朝内或朝外扩大深度,在使用新的Parallax Occlusion Mapping节点获取光线的阴影时,这项输入很实用。
此外,所有HDRP Master Nodes主节点现在都支持烘焙GI的重写。为了启用该功能,使用Master Node设置上的Override Baked GI复选框,它会添加二项输入到主节点:Baked GI和Back Baked GI。
这将允许你提供自定义烘焙GI,分别用于间接漫反射光照和透光效果,或者结合Baked GI Node,使你可以修改它。Baked GI属性的默认值等于Baked GI节点的默认输出值。
光照质量和控制
我们对光照进行了许多改进。此前光照无法使用正确的现实或物理数值,因为曝光范围和精度不允许。
光照计算现在使用Pre-Exposure预曝光,这意味着曝光不会在后期处理期间应用在帧的最后,而是会应用到光照本身,这样大幅提升了精度,允许使用较大数值的光强度,例如:太阳光的强度。
此外,Sky和Emissive等光线现在使用的单位是EV100,而不是EV,该单位常用于照明图表上参考值的单位。由于与Unity 2018.3的光照单位的差异,因此将项目升级到Unity 2019.1意味着可能要调整部分光强度。
Lit/Unlit着色器和Lit/Unlit Master Node上的Emissive属性经过改进,支持EV100和光亮度单位,提供额外的Exposure Weight控制和Emission节点。这项控制可以强制对象产生泛光效果,即使处于正确曝光下,例如:使对象在明亮的日光下产生泛光。
矩形区域光已经加强,支持光线遮罩和近似区域阴影。该功能比较消耗性能,应该主要用在高质量画面模式或影视效果。阴影遮罩支持已经添加,提供高质量的烘焙柔和阴影,同时保持镜面高光。
反射系统改进
GPU现在可以烘焙反射探针,加速烘焙过程。反射探针和光照工作流程集成,以简化反射探针的烘焙过程,让开发者在光照窗口烘焙所有加载的反射探针。
实时平面反射支持
实时平面反射支持已经加入。在回放期间,HDRP仅渲染可见的实时反射探针和平面探针,HDRP在FrameSettings中对实时渲染和离线渲染提供了单独的控制功能。
HDRP中后期处理效果的本地集成
在Unity 2019.1中,我们把后期处理直接集成到HDRP中,包含一组基于计算着色器的自定义后期处理效果,开发时我们特别考虑了性能和质量,它适用于高端主机和桌面平台。这套后期处理工具的新集合,兼容RT Handle系统,支持动态分辨率功能。
请注意:新的后期处理设置不兼容后期处理特效包Post-Processing Stack V2,这意味着你必须在升级项目到Unity 2019.1时,重新制作所有后期处理效果。这也意味着HDRP不再支持后期处理特效包Post-Processing Stack V2。
FXAA、SMAA、Temporal抗锯齿和8位抖动效果提供了后期处理抗锯齿效果,有助于平滑渐变并移除8位色带,它们可以在摄像机上直接设置。色差,镜头畸变和晕影效果与后期处理特效包Post-Processing Stack V2上的对应效果相同。
Film Grain经过重新制作,可以使用粒度查询纹理,而不是程序化噪声。我们还添加了新的Panini Projection效果。Bloom 泛光效果现在使用基于预曝光值的阈值,这意味着只有过度曝光的对象会产生泛光效果,而不是在高于指定强度的对象产生泛光效果。
Color Grading颜色分级有来自后期处理特效包Post-Processing Stack V2的改良版“HDR Grading”模式。大型颜色分级面板分离为独立的体积组件,以保持检视窗口的简洁。
Depth of Field景深效果经过完全重新设计,现在提供参数化光圈形状控制功能,允许你轻松配置光圈叶片数量、弯曲度和桶状剪裁和合成变质,该效果与分辨率无关。
Motion Blur动态模糊也完全重新设计,提升了质量和性能,这包括全新算法改动,它可以实现更精准和更广泛的模糊效果,同时减少伪影。
在Unity 2019.1中,你可以从HDRP访问深度和法线缓冲区。视觉效果也可以访问HDRP内部的渲染缓冲区的内容,例如:主摄像机的深度或颜色,并把它们在模拟通道用作输入纹理。这可以帮助你轻松设置深度缓冲区碰撞和粒子的场景变形等功能。

Visual Effect Graph(预览版)

Visual Effect Graph受到主流电影特效软件的启发,提供了灵活且易于使用的节点系统,能够帮助艺术家为游戏等交互式内容快速创作惊艳的视觉效果。
在Unity 2019.1中,我们加入了多项改进和新功能,提供多个示例项目,帮助你学会创作全新的视觉效果。
新的Prewarming功能允许你在特定时间预先模拟效果的一部分,使它逐渐达到完整状态。这可用于创作各种效果,例如:随时间积累的烟雾。我们也更新了光照探针和光照探针代理体积。
噪声函数的改进使用了柏林噪声,包括柏林噪声数值,细胞噪声和卷曲变化。生成时间和生成数量算子可以统计前一帧同时生成的粒子数量。

面向Vulkan的渲染插件支持

我们现在面向Vulkan提供渲染插件支持,详情请访问:
  • 示例:https://bitbucket.org/Unity-Technologies/graphicsdemos
  • 帮助文档https://docs.unity3d.com/2019.1/Documentation/Manual/NativePluginInterface.html

GPU光照贴图(预览版)

GPU光照贴图现在处于预览版阶段,加入了更多功能和平台支持。现在GPU光照贴图可以在MacOS系统和Linux系统使用,支持材质上的双面GI标识,以及网格上的阴影投射和接收。
如下图所示,我们使用GPU光照贴图烘焙来自ArchVizPRO制作的场景资源。
烘焙功能现在默认使用和编辑器相同的高性能GPU,我们可以使用命令行把它改为不同的GPU。
了解GPU光照贴图更多信息,请访问:https://docs.unity3d.com/2019.1/Documentation/Manual/GPUProgressiveLightmapper.html

为Optix AI Denoiser加入支持

Optix AI Denoiser是一种基于深度学习的降噪器,它使用路径跟踪图像库进行训练。这是对过滤选项的重大改进,在样本数量较少的情况下,它可以灵活应变漏光和模糊情况。它可以结合其它过滤器,实现更加平滑的光照贴图。
使用新的Denoiser降噪器有助于显著减少样本数量,实现比之前更快的烘焙速度。Optix AI Denoiser支持适用于Windows系统,兼容NVIDIA GPU。

关键环境多重采样(MIS环境)

MIS Environment是一种对Cubemap /HDRI中最重要区域进行采样的新方法。这项技术会避免发射大量GI光线到半球体,把光线聚焦于重要区域,例如:太阳明亮的位置。
通过使用该功能,我们可以使用非常不均匀的标准HDRI环境贴图烘焙环境。新的Environment Samples(环境采样)参数被添加到Lighting光照窗口,该值控制每个光照贴图体素直接跟踪到环境的光线数量。

其它光照改进

光照探针Gizmos不会受到曝光校正的影响,这样在使用HDRP和高强度光照时,会简化光照探针的迭代。
通过使用新的Limit Lightmap Count(限制光照贴图数量)参数,你可以指定为特定对象组生成的最大光照贴图数量。在为资源有限的移动平台开发游戏时,该参数会特别有用。
Realtime GI: Async Readback使CPU不必等待GPU回读,它可以提高性能,降低CPU峰值。Auto Generate不会在新场景默认使用,我们在底部状态栏添加了链接,用来表示是否处于Auto Generate自动生成模式。

移除LookDev

用于查看资源的实验性功能LookDev已被移除,我们会继续改进该功能,在今年晚些时候重新添加到SRP,并提供LWRP和HDRP支持。

编辑器内的异步着色器编译

Unity编辑器会推迟着色器编译过程,直到渲染过程首次需要特定着色器变体。但是这可能会导致编译器停顿现象,因为着色器编译器的处理需要大量时间。
新的Async Shader Compilation异步着色器编译功能可以解决这种停顿现象,它会分离编译过程和渲染过程,使用纯蓝色虚拟着色器进行替代,直到编辑器完成编译过程。这是仅限于编辑器使用的功能,不会影响游戏,而是会加快编译时间。

高影响值的蒙皮权重

你现在可以对每个顶点使用32个骨骼影响,通过蒙皮网格渲染器的API,最多可以使用255个骨骼影响。这样会在运行时保持蒙皮权重保真度和外部程序的原始内容一致。
高影响值的蒙皮权重功能特别适用于基于骨骼的面部绑定,嘴角和眼睛等精细的区域需要超过4个骨骼影响。它也会提高使用平滑蒙皮分解的绑定质量,从而对较少骨骼实现更为平滑的结果。

Unity版本与发布计划

Unity 2019.2 Alpha版已开放下载,提供给用户了解新功能及测试使用。
下载Unity 2019.2 Alpha版:https://unity3d.com/unity/beta
未来几周,我们将发布Unity 2018.4 LTS长期稳定支持版本,帮助开发者在坚实的基础上开发稳定的作品。

小结

Unity 2019.1正式版功能介绍终于为大家介绍完毕,非常感谢每一位能够完整阅读本系列文章的所有用户。
Tags:
Unity China
677
Comments