游戏聚焦系列 | 好用的渲染管线,对游戏而言有多重要
游戏聚焦系列主要介绍我们未来一年及以后的主要产品开发计划。在篇博文里,我们将讨论可编程渲染管线的现状、最近的发布计划和未来的规划。
我们的使命是让你有能力创造各种非凡的游戏、触达全球各地的玩家。我们之所以推出这个博文系列,是为了说明我们在整个明年以及2024年和2025年优先考虑的功能和改进。
这篇文章将介绍通用渲染管线(URP)和高清渲染管线(HDRP)的持续性改进,以帮助你在所有 Unity 支持的平台上制作可扩展的图形。我们先来看看目前两个渲染管线具备了哪些功能,然后再来了解2023年及以后的计划。
可编程渲染管线
随着硬件能力的不断增强,图像内容若想接触到尽可能广的受众,其测试、优化和扩展就会变得越来越复杂且耗时。我们的目标是降低你的成本,让游戏在最广的平台上以最佳的视觉质量和性能来扩展和交付。
我们努力提供最先进、符合真实物理、开箱即用的渲染,并且为有需要的创作者提供扩展功能,使其能展现个人风格、深度优化项目、快速做出原型。此外,我们希望提高渲染管线源码的可读性与可编辑性,以及 C# 代码的效率,让你在需要时深入地定制管线。
演示项目《Viking Village URP》展现了 URP 的渲染能力,包括光照探针、反射探针、用自定义 ScriptableRenderPass 实现的水体特效、用 Shader Graph 转换的着色器以及 URP 后处理。
为了实现这些目标,我们提供了两个可满足不同需求的渲染管线:通用渲染管线和高清渲染管线。我们分别看看各个 SRP 的工作进展,以及我们对 Unity 渲染的长期目标。
通用渲染管线
我们设计的 URP 能让你高效地学会、定制并扩展管线到所有 Unity 支持的平台。我们的最高目标是将 URP 成为移动、 XR 和无线显示设备上领先的渲染器。
URP 是原内置渲染管线的继位者。图形团队正努力还原你所熟悉的所有功能,并在此基础上加上更好的性能、更广的定制空间和更多的工作流程。
我们在 2021 LTS 版本里对 URP 做的重大改进让管线的功能更贴近于内置渲染管线。
反射探针与移植到 URP 的 Unity 演示项目《FPS Sample: The Inspection》。每个反射探针会将周围环境捕捉到一张立方体贴图上。
我们还改进了URP定制与性能管理的工作流程,加入了 Shader Graph Surface Options 、 Depth Pre-pass 、 Light Layers 、 Volume System Update Frequency 和 Render Pipeline Debug Window 。
未来计划
在迄今发布的2022 Tech Stream 版本里,我们根据用户反馈对工作流和性能做了进一步改进。当前处于 beta 测试的一些亮点功能包括: LOD Crossfade 、 Rendering Decal Layers 、 Full Screen Shader Graph 支持,以及更直观的自定义后处理工作流。
贴花( Decal )可以为场景添加额外的细节,打破材质千篇一律的模式。默认情况下, Decal Projector 会影响场景内所有模型网格,并产生不想要的结果。Decal Layers 能让模型网格不受场景内特定 Decal Projectors 影响。
在2022.2中,我们还添加了对 Forward+ 的支持,它不仅具备前向渲染的优势,还没有对光照数量的限制。
有了 Forward+ ,你就能在场景中加入更多光照,突破目前每个物体只能加八束光照的限制。你可以在选择 Forward 和 Deferred 渲染器的界面上将 Forward+ 选为首选渲染器。
我们还在2022年对 SRP 核心 API 做了一些影响较大的小改进,让内置渲染管线得以胜任几种重要的用途。例如, Camera.Render 带来的功能可让你在标准 Update 更新循环以外触发渲染,你可以利用 RenderPipeline . SubmitRenderRequest 来使用它。DrawingSettings 新增加的 Override Shader 可以用于还原内置渲染管线的 Camera . SetReplacementShader 功能。
随着2022.2版本的发布, URP 已经包含了内置渲染管线的大部分功能,并且在某些方面有着更为优秀的质量和性能。如果你想转而使用 URP ,我们建议你先比较下两种管线的功能,再决定要不要切换管线,然后依照详细的步骤完成管线切换。
我们非常高兴有越来越多的游戏采用了URP,包括《Lost in Random™》、《Two Point Campus》、《Circuit Superstars》、《Neon White》、《Crash Bandicoot: On the Run!》以及《LEGO Builder's Journey》。
Original Fire Games 的《Circuit Superstars》
在2023年的版本中,我们将继续完成 URP 剩余的改进,让管线与内置渲染管线完全对等,提供更好的文档和指南,并根据用户反馈完善工作流和性能。除了 Volume 框架性能、着色器构建时间以及内存占用,我们还在开发其他几种新功能,包括 Adaptive Probe Volumes 、 Temporal Anti-Aliasing 、 High Dynamic Range Display Output 以及 Foveated Rendering for VR 。
而 Surface Shader 功能是用户呼声最高的改进之一。在未来几周,我们将用一篇新博文和公开演示来介绍 Block Shaders 直观的语法和多管线统一的着色器编写工作流。
我们还在进一步改进 URP 的基础,继续推进 Render Graph 在 URP 中的开发。这可以提高 URP 在所有平台上的稳定性,同时 Render Graph 能尽可能降低 GPU 内存占用。Render Graph 将于2023年发布。Render Graph 也能让代码库更接近 HDRP ,让两个管线拥有额外兼容性,这也是我们对 SRP 的长期目标之一。
在功能完全相同后,你就不必再比较 URP 与内置管线,可以自信地用 URP 取而代之。如此一来,你在为游戏选择渲染管线时会非常简单。为了让你能有充足的时间来移植项目, 2023 LTS 仍将全面支持内置渲染管线。
如果你想从内置渲染管线转移到URP,推荐参考我们新的技术指南(点击回看)。也可以进入 Unity 中文课堂,进行学习。
高清渲染管线
在过去三年里,有许多令人赞叹的作品都采用了 HDRP ,如《Hardspace: Shipbreaker》、《Recompile》、《I Am Fish》、《Disciples: Liberation》和《Syberia: The World Before》,《Syberia》甚至能在 Steam Deck 上以 4K 运行。
未来计划
环境艺术家可借助新的水体系统来提升图像质量,用更优秀的云层光照和改进后的 Volumetric Clouds 来糅合两种天气状况。
最后,要想制作高度清晰的预告片和电影,角色艺术家和灯光师可以利用起 Unity 演示项目《Enemies》中的高质量眼球焦散效果和区域光阴影,而 Pathtracer 可以借助 NVIDIA Optix™ AI 加速降噪器或 Intel® Open Image Denoise 来更快地渲染零噪点图像。
优化性能,尤其是大多数游戏都要面对的 CPU 占用上,始终是我们的首要任务。我的同事们不断地为 Unity 和 CG 行业带来了许多创新,我们将继续利用这些研究成果,并与 Wētā Digital 、 Ziva 和 SpeedTree 等艺术工具团队合作,致力于 PC 和主机游戏关键领域的开发和创新。这些领域包括:
更轻松地渲染天气与一天时间不断变化的高清环境,改进 Adaptive Probe Volumes (自适应探针体积)、 Capsule Shadows (胶囊形阴影)等更多功能。
角色和生物
可玩角色、非玩家角色及其他角色的高清渲染。你可以在《Lion》和《Enemies》演示中一瞥未来,或在这段简短介绍里了解实验性基于发的实时头发渲染方案。
《Enemies》演示中用到的实验性基于发丝的实时头发渲染方案
如果你想继续了解 HDRP 的方方面面,欢迎查阅往期教程(点击回看)。
我们在2023年及以后对 SRP 的设想
我们将主要依靠这两个用途不同的管线来交付高性能、可扩展的渲染解决方案。
URP 能在移动设备上提供最佳的图像质量,还能运行于每个 Unity 支持的平台。它有极大的扩展空间来支持风格化图像和违背物理法则的优化。
HDRP 则提供了只有在高端平台上才能实现的精致图像。它所提供的功能集紧密相连,可以产生符合真实物理的光照。
要实现全面可扩展的渲染,下一步是让同一个游戏能同时启用 URP 和 HDRP 。游戏既要有 HDRP 所具备的高图像质量,又要有 URP 广泛的平台覆盖。譬如,《LEGO Builder's Journey》 和《Road 96》这两款出色的游戏在 PC 和主机上使用了 HDRP ,在移动端和无线显示设备上使用了 URP 。我们希望赋予更多的Unity创作者同样的扩展性。
Light Brick Studios 的《LEGO® Builder’s Journey》
由于当前一个项目只能在编辑器内启用一个管线,要在今天做到这点,你必须分别创建 URP 和 HDRP 两个项目,并重复创作内容。而我们的最终目标是让你能为每个平台选择最适合的管线,以最少的功夫来提高生产力。你将有机会在每个平台上同时拥有最好的图像质量和最高的性能。
我们正从两个方面努力实现目标。
首先,我们正在改动编辑器,让你能在一个项目中同时加入 URP 和 HDRP 。不同场景将能启用不同的渲染管线。在允许 Render Pipeline Coexistence (渲染管线共存)后,你就能在一个项目里为每个管线制作和维护专门的图像资产,为特定平台构建和运行启用了特定渲染管线及相关资产的内容。我们目前已经取得了良好的进展,并会很快放出更多消息。
其次,我们正在提高 URP 和 HDRP 之间的兼容性,让同一批内容在用不同的渲染管线渲染时更为省力。过去两年里,我们已经在着手实现 HDRP 和 URP 的功能对等和相互兼容(比如 SRP 镜头光晕、地形细节和树木、 VFX Graph 、 Shader Graph Master Stack和Full Screen Master Node 、 Rendering Layers、Rendering Debugger )。我们将探索材质、光照、摄像机和后处理的数据模型共享,让 Unity 的所有渲染后端都能解析同一份内容,减少重复性创作。Unity 2023将包含一份用 Shader Graph 编写、可用于 Lit (受光)和 Unlit (非受光)着色器的跨管线材质。
Digixart 的《Road 96》
希望大家能继续关注我们的游戏聚焦系列,请继续关注系列的后续更新。
点击前往上期:游戏聚焦系列 | 推进游戏开发大众化,Unity正在做什么
长按关注
第一时间了解Unity引擎动向,学习最新开发技巧
每一个“在看”,都是我们前进的动力