查看原文
其他

游戏聚焦系列 | 好用的渲染管线,对游戏而言有多重要

Unity Unity官方平台 2023-11-23

游戏聚焦系列主要介绍我们未来一年及以后的主要产品开发计划。在篇博文里,我们将讨论可编程渲染管线的现状、最近的发布计划和未来的规划。

我们的使命是让你有能力创造各种非凡的游戏、触达全球各地的玩家。我们之所以推出这个博文系列,是为了说明我们在整个明年以及2024年和2025年优先考虑的功能和改进。

这篇文章将介绍通用渲染管线(URP)和高清渲染管线(HDRP)的持续性改进,以帮助你在所有 Unity 支持的平台上制作可扩展的图形。我们先来看看目前两个渲染管线具备了哪些功能,然后再来了解2023年及以后的计划。

可编程渲染管线

Digixart 的《Road 96》

随着硬件能力的不断增强,图像内容若想接触到尽可能广的受众,其测试、优化和扩展就会变得越来越复杂且耗时。我们的目标是降低你的成本,让游戏在最广的平台上以最佳的视觉质量和性能来扩展和交付。

我们努力提供最先进、符合真实物理、开箱即用的渲染,并且为有需要的创作者提供扩展功能,使其能展现个人风格、深度优化项目、快速做出原型。此外,我们希望提高渲染管线源码的可读性与可编辑性,以及 C# 代码的效率,让你在需要时深入地定制管线。

演示项目《Viking Village URP》展现了 URP 的渲染能力,包括光照探针、反射探针、用自定义 ScriptableRenderPass 实现的水体特效、用 Shader Graph 转换的着色器以及 URP 后处理。

为了实现这些目标,我们提供了两个可满足不同需求的渲染管线:通用渲染管线和高清渲染管线。我们分别看看各个 SRP 的工作进展,以及我们对 Unity 渲染的长期目标。

通用渲染管线

Zoink Games 的《Lost in Random》
  目前已有的内容

我们设计的 URP 能让你高效地学会、定制并扩展管线到所有 Unity 支持的平台。我们的最高目标是将 URP 成为移动、 XR 和无线显示设备上领先的渲染器。

URP 是原内置渲染管线的继位者。图形团队正努力还原你所熟悉的所有功能,并在此基础上加上更好的性能、更广的定制空间和更多的工作流程。

我们在 2021 LTS 版本里对 URP 做的重大改进让管线的功能更贴近于内置渲染管线。

2021 LTS 有几处我们自己也喜闻乐见的改进:
 Point Light Shadows(点光源阴影)
 Deferred Rendering Support(延迟渲染支持)
 Decals(贴花)
 Enlighten Realtime Global Illumination(Enlighten实时全局光照)
 Light Cookies(光照Cookie)
 Reflection Probe Blending(反射探针混合)
 Reflection Probe Box Projection(反射探针立方体投影)

 Lens Flare(镜头光晕)

反射探针与移植到 URP 的 Unity 演示项目《FPS Sample: The Inspection》。每个反射探针会将周围环境捕捉到一张立方体贴图上。

我们还改进了URP定制与性能管理的工作流程,加入了 Shader Graph Surface Options Depth Pre-passLight Layers Volume System Update Frequency Render Pipeline Debug Window

用 Light Layer 突显对象

未来计划

在迄今发布的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 中文课堂,进行学习。

https://learn.u3d.cn/u/li-peng-peng/?tab=created

高清渲染管线

《Syberia: The World Before》,由 Microids ©2022 Microids SA 版权所有。由巴黎 Microids 工作室开发。作者及艺术总监:Benoit Sokal 。由 Microids SA 出版。版权所有。
  目前已有的内容

在过去三年里,有许多令人赞叹的作品都采用了 HDRP ,如《Hardspace: Shipbreaker》、《Recompile》、《I Am Fish》、《Disciples: Liberation》和《Syberia: The World Before》,《Syberia》甚至能在 Steam Deck 上以 4K 运行。

Bossa Studios 的《I Am Fish》

同时,我们还收到了大量来自开发者和艺术家们的反馈,并因此改进了管线的可扩展性、物理形光照的使用体验以及管线的性能和稳定性。我们还引入了一些创新功能和技术,如 NVIDIA DLSS 、 AMD FSR 、 Volumetric Clouds 和光线追踪

HDRP 的 Volumetric Clouds (体积云)可以与主方向光互动
目前, LTS 版的 HDRP 包含有一套完整的、相互兼容的可扩展功能,可支持 Light Brick Studios 这样的团队,将获奖手机游戏《LEGO Builder's Journey》升级成渲染效果逼真的 PC 游戏。而 Stunlock Studios 团队利用了 Unity 的扩展性、 DOTS 和 HDRP 的先进渲染技术来开发大型多人游戏《V Rising》。有时候,带有基于物理光照的动画电影不一定要看起来很逼真(比如《蜘蛛侠:平行宇宙》或我们自己的短片《WiNDUP》),而 HDRP 同样也能驾驭风格化的游戏,比如《Slime Rancher 2》。
Light Brick Studios 的《LEGO® Builder’s Journey》

未来计划

2022.2的 HDRP 将全面支持 Shader Graph 、自定义后处理通道、 Custom Render Textures (自定义渲染纹理)以及 Local Volumetric Fog (本地体积雾)。

环境艺术家可借助新的水体系统来提升图像质量,用更优秀的云层光照和改进后的 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 (胶囊形阴影)等更多功能。

《Enemies》演示中用于光照的自适应探针体积。

  角色和生物

可玩角色、非玩家角色及其他角色的高清渲染。你可以在《Lion》和《Enemies》演示中一瞥未来,或在这段简短介绍里了解实验性基于发的实时头发渲染方案。

《Enemies》演示中用到的实验性基于发丝的实时头发渲染方案

如果你想继续了解 HDRP 的方方面面,欢迎查阅往期教程(点击回看)。

我们在2023年及以后对 SRP 的设想

  同时用 URP 和 HDRP 进行流畅的跨平台内容创作

我们将主要依靠这两个用途不同的管线来交付高性能、可扩展的渲染解决方案。

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 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧





 每一个“在看”,都是我们前进的动力 

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存