Unity 社区
2
1

从内置转为通用渲染管线,看这个教程就够了

Unity技术博客
阅读 7862
2022年9月13日
随着 Unity 支持的平台数量不断增加,内置渲染管线的局限也日益明显。
2018 年,Unity 发布两款新的可编程渲染管线 (SRP):HDRP 和 URP。用户可利用这些 SRP 自定义对象剔除、绘制以及帧的后期处理,无需使用 C++ 等编程语言。还可打造自己的完全自定义 SRP。
SRP 架构旨在提供高灵活度和丰富的自定义空间,增强所有支持平台和未来平台的性能,并快速迭代以释放你的创意潜能。
Unity 中文课堂发布了最新的 URP 教程,帮助大家从内置渲染管线升级为可编程渲染管线。欢迎进入 learn.u3d.cn,搜索“通用渲染管线”即可找到本文。
历经几年的专注开发,URP 技术现已十分可靠,可以投入生产。本指南将助你利用其优势,成功开发游戏。
从内置渲染管线到 SRP
可编程渲染管线可以支持高效的多平台工作流,相比于内置渲染管线有以下优势:
适用于多数硬件平台的智能且可靠的比例缩放,涵盖高端至低端设备
可以用 C#((而非 C++)语言自定义渲染流程使用 C# 语言意味着无需为每次更改编译新的可执行文件
灵活支持架构演进
灵活创建在多个平台都性能出色的清晰图形
下图展示了 SRP 的运作方式。使用 C# 语言控制并自定义渲染通道和渲染控制,以及能够用着色器视图等便于美工使用的工具创建的 HLSL 着色器。甚至可以用着色器访问低级 API 和引擎层抽象对象。
用于可编程渲染管线的新图形可编程模型
高级用户可从头开始创建新的 SRP 或修改 HDRP 或 URP https://github.com/Unity-Technologies/Graphics
。图形堆栈是开源的,可在 GitHub 中使用。
未来,URP 将取代内置渲染管线,成为 Unity 中的默认渲染管线。具体日期待定,至少在 2022 年的下一个发布周期内,内置渲染管线仍为可用选项。
通过以下链接 https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@13.0/manual/universalrp-builtin-feature-comparison.html
,了解内置渲染管线与 URP 的全方位功能对比情况。
转换流程
此章节将介绍用 URP 启动新项目或将现有项目转换为 URP 的步骤。
如何打开新的 URP 项目
通过 Unity Hub 使用 URP 打开新项目。点击新项目(New),确认窗口顶端显示的 Unity 版本为 2021.2 或更新版本。为项目选择名称和地点,选择 3D (URP) 模板或 3D 示例场景 (URP)(3D Sample Scene (URP)),然后点击创建(Create)。
用 URP 模板创建新项目,首次创建时可能需要下载模板
注:模板可确保项目使用线性色彩空间,这是准确计算照明的必备要求。
3D 示例场景 (URP) 项目模板中包含示例场景
你可通过 文件(File)> 新场景(New Scene)创建新场景,其中包含摄像机和定向光等基本 GameObjects,甚至还能用预填充对象创建自己的场景模板。如需了解详情,请
阅览 URP 场景模板文档 https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.1/manual/scene-templates.html
显示场景模板的新场景对话
转至编辑(Edit)> 项目设置(Project Settings),打开图形(Graphics)面板。如需在编辑器内使用 URP,必须从可编程渲染管线设置(Scriptable Render Pipeline Settings)中选择一个 URP 资源(URP Asset)。URP 资源可控制项目的全局渲染和质量设置,并创建渲染管线实例。同时,渲染管线实例中包含中间资源和渲染管线实施。
URP 资源默认选择通用 RP-高分辨率(UniversalRP-HighFidelity),但可将其切换为通用 RP-平衡(UniversalRP-Balanced)或通用 RP-性能(UniversalRP-Performant)。
项目设置中的图形面板
本指南将在后续章节中详细介绍如何调整 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 资源,而是使用两个文件,每个文件都有一个资源扩展名。
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)。
选择可编程渲染管线资源
屏幕中会弹出一条与切换相关的警告信息,忽视警告,点击继续(Continue)。
由于项目中尚无内容,因此几乎立即就能完成渲染管线的切换。你现已准备好使用 URP。
转换现有项目的场景
完成上述步骤后,你会看到精美的场景突然变成品红色。这是因为 URP 不支持内置渲染管线项目中材质使用的着色器。幸运的是,我们可以修复场景,使其恢复原始质量。
转至窗口(Window)> 渲染(Rendering)> 渲染管线转换器(Render Pipeline Converter)。2D 项目选择从内置转至 2D (URP)(Convert Built-In to 2D (URP)),3D 项目选择从内置转至 URP(Built-In to URP)。假设你的项目为 3D 项目,你需要选择适当的转换器:
渲染设置:选择此项可创建多个渲染管线设置资源,以尽可能匹配内置渲染管线质量设置。从而更高效地测试不同的质量水平。请参阅内置渲染管线和 URP 质量选项对比章节,了解详情。
材质升级:使用此项可将材质从内置渲染管线转换为 URP。
动画片段转换器:它可转换动画片段。材质升级转换器完成后即开始运行。
只读材质转换器:它能转换 Unity 项目中包含的预构建只读材质。它会给项目生成索引,然后创建临时 .index 文件。注意,这可能会耗费较长时间。
转换自定义着色器
自定义着色器不使用材质升级转换器进行转换。着色器和新工具章节列出了从自定义内置渲染管线着色器转换为 URP 的步骤。将自定义着色器更新至 URP 的最快方式通常是使用着色器视图。
共有六种不同的 URP 着色器:
通用渲染管线/光照:这是基于物理渲染 (PBR) 的着色器,与内置标准着色器相似,可用于显示大多数现实材料。它支持所有标准着色器功能,包含金属和镜面工作流。
通用渲染管线/简单光照:它采用 Blinn-Phong 光照模型,适合不用 PBR 工作流的低端移动设备或游戏。
通用渲染管线/无光照:这是 GPU 性能着色器,不使用光照方程。
通用渲染管线/地形/光照:它适合与地形工具资源包配合使用。
通用渲染管线/粒子/光照:此粒子着色器采用 PBR 光照模型。
通用渲染管线/粒子/无光照:此无光照粒子着色器的 GPU 占用率较低。
虽然简单光照会取代很多传统/移动着色器,但性能并不相同。传统/移动着色器仅部分评估光照,而简单光照会按 URP 资源的定义考量所有光线。
请参阅 URP 文档中的此表 https://docs.unity3d.com/cn/Packages/com.unity.render-pipelines.universal@12.1/manual/upgrading-your-shaders.html
,了解每种 URP 着色器如何映射至其相应的内置渲染管线。
选择一或多个上述转换器,然后点击初始化转换器(Initialize Converters)。系统会扫描项目,并将需转换的资源添加到各转换器面板中。可用各面板中的复选框取消所选项,以限制转换。此时,点击转换资源(Convert Assets),开始转换流程。转换完成后,系统可能会要求你重新打开编辑器中处于活动状态的场景。
发布于新手答疑
1条评论

AI

全新AI功能上线

1. 基于Unity微调:专为Unity优化,提供精准高效的支持。

2. 深度集成:内置于团结引擎,随时查阅与学习。

3. 多功能支持:全面解决技术问题与学习需求。

AI