从内置转为通用渲染管线,看这个教程就够了
随着 Unity 支持的平台数量不断增加,内置渲染管线的局限也日益明显。2018 年,Unity 发布两款新的可编程渲染管线 (SRP):HDRP 和 URP。用户可利用这些 SRP 自定义对象剔除、绘制以及帧的后期处理,无需使用 C++ 等编程语言。还可打造自己的完全自定义 SRP。
SRP 架构旨在提供高灵活度和丰富的自定义空间,增强所有支持平台和未来平台的性能,并快速迭代以释放你的创意潜能。
Unity 中文课堂发布了最新的 URP 教程,帮助大家从内置渲染管线升级为可编程渲染管线。欢迎进入 learn.u3d.cn,搜索“通用渲染管线”即可找到本文。
从内置渲染管线到 SRP
下图展示了 SRP 的运作方式。使用 C# 语言控制并自定义渲染通道和渲染控制,以及能够用着色器视图等便于美工使用的工具创建的 HLSL 着色器。甚至可以用着色器访问低级 API 和引擎层抽象对象。
用于可编程渲染管线的新图形可编程模型
未来,URP 将取代内置渲染管线,成为 Unity 中的默认渲染管线。具体日期待定,至少在 2022 年的下一个发布周期内,内置渲染管线仍为可用选项。
https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@13.0/manual/universalrp-builtin-feature-comparison.html
转换流程
此章节将介绍用 URP 启动新项目或将现有项目转换为 URP 的步骤。
如何打开新的 URP 项目
通过 Unity Hub 使用 URP 打开新项目。点击新项目(New),确认窗口顶端显示的 Unity 版本为 2021.2 或更新版本。为项目选择名称和地点,选择 3D (URP) 模板或 3D 示例场景 (URP)(3D Sample Scene (URP)),然后点击创建(Create)。
注:模板可确保项目使用线性色彩空间,这是准确计算照明的必备要求。
3D 示例场景 (URP) 项目模板中包含示例场景
你可通过 文件(File)> 新场景(New Scene)创建新场景,其中包含摄像机和定向光等基本 GameObjects,甚至还能用预填充对象创建自己的场景模板。如需了解详情,请阅览 URP 场景模板文档。
https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.1/manual/scene-templates.html
本指南将在后续章节中详细介绍如何调整 URP 资源设置。
如需打开清洁项目,可使用 3D (URP) 模板,若想删除示例场景 (URP) 模板中的示例场景,可删除 ExampleAssets 和教程信息文件夹(Tutorial Info folders)以及设置(Settings)> SampleSceneProfile.asset,场景(Scenes)> SampleScene.unity 和场景(Scenes)> SampleSceneLightingSettings. lightin
如何将 URP 添加到现有的内置渲染管线项目中
重要提示:务必先利用源控制进行项目备份,然后再执行本章节的以下步骤。此操作将会转换资源,Unity 不提供撤销选项。若使用源控制功能,可在必要时恢复至之前的资源版本。
升级现有的内置渲染管线项目时,需要为项目添加 URP 资源包(URP package),因为 Unity 2021.2 或 2021 LTS 不含此资源。
显示 Unity 注册表资源包的资源包管理器
转至窗口(Window)> 资源包管理器(Package Manager),点击资源包(Packages)下拉菜单并将 URP 添加到项目中。务必选择 Unity 注册表(Unity Registry),然后选择通用 RP(Universal RP)。如果你开发使用的计算机尚未安装 URP 资源包,点击窗口右下角的下载(Download)。下载结束后,点击安装(Install)。
通过资源包管理器安装 URP
如需创建 URP 资源,右击项目(Project)窗口并选择创建(Create)> 渲染(Rendering)> URP 资源(含通用渲染器)(URP Asset (with Universal Renderer))。为资源命名。
创建 URP 资源
切记,若用通用渲染管线或 3D (URP) 模板创建新项目,项目中已包含这些可用的 URP 资源和 URP 资源包。
URP 不是创建单一 URP 资源,而是使用两个文件,每个文件都有一个资源扩展名。
其中一个资源的文件名以 _Renderer 结尾;在以下示例中,它被称为通用 RP_渲染器(Universal RP_Renderer)。这是渲染器数据资源(Renderer Data Asset),你可用其筛选渲染器的工作层,并拦截渲染管线,以自定义场景的渲染方式。从而创建优质效果。参阅管线回调章节,了解详情。
此外,UniversalRP_Renderer 控制 URP 的高级渲染逻辑和通道。它支持前向和延迟路径,以及启用 2D 灯光、2D 阴影和 灯光混合样式等功能的 2D 渲染器。甚至还可扩展 URP,创建你自己的渲染器。
UniversalRP_Renderer 数据资源检查器
另一个 URP 资源用于控制质量、光照、阴影和后期处理设置。可使用不同的 URP 资源来控制质量设置,本章节后续部分阐明了此流程。此设置资源通过渲染器列表链接至渲染器数据资源。创建新 URP 资源时,设置资源将提供一个含单一项的渲染器列表,即同时创建的渲染器数据资源,并设为默认渲染器。你可为此列表添加其他渲染器数据资源。
默认渲染器可用于所有摄像机,包括场景视图。从渲染器列表中选择其他渲染器,摄像机可以覆盖默认渲染器。可根据需要利用脚本完成上述操作。
检查器中的 URP 资源
虽按这些步骤创建 URP 资源,但场景或游戏视图中的开放场景仍使用内置渲染管线。必须完成最后一步,才能切换至 URP。转至编辑(Edit)> 项目设置(Project Settings),打开图形(Graphics)面板。点击无(渲染管线资源)(None (Render Pipeline Asset))旁的小圆点。在打开的面板中,选择通用 RP(UniversalRP)。
选择可编程渲染管线资源
完成上述步骤后,你会看到精美的场景突然变成品红色。这是因为 URP 不支持内置渲染管线项目中材质使用的着色器。幸运的是,我们可以修复场景,使其恢复原始质量。
转至窗口(Window)> 渲染(Rendering)> 渲染管线转换器(Render Pipeline Converter)。2D 项目选择从内置转至 2D (URP)(Convert Built-In to 2D (URP)),3D 项目选择从内置转至 URP(Built-In to URP)。假设你的项目为 3D 项目,你需要选择适当的转换器:
请参阅 URP 文档中的此表,了解每种 URP 着色器如何映射至其相应的内置渲染管线。
关于管线转换的更多细节,以及 URP 的使用指导,尽在《高级 UNITY 创作者的通用渲染管线简介》。进入 learn.u3d.cn,搜索“通用渲染渲染”即可找到本教程。
长按关注
第一时间了解Unity引擎动向,学习最新开发技巧
点击“阅读原文”,跳转Unity中文课堂