一、将内置渲染管线(BRP)切换为URP管线
将 Unity 项目从 内置渲染管线 升级为 URP(Universal Render Pipeline) 需要按以下步骤操作。这是一个涉及全局配置和材质转换的过程,因此建议在开始前备份项目。
1. 确保 Unity 版本支持 URP
URP 是 Unity 的 Scriptable Render Pipeline (SRP) 框架的一部分,推荐使用 Unity 2019.3 或更高版本。你可以在 Unity Hub 检查并升级项目的 Unity 版本。
2. 安装 URP 包
- 打开 Unity 的顶部菜单:
Window → Package Manager。 - 在 Package Manager 中:
- 找到 Universal RP(Universal Render Pipeline)。
- 如果未显示,点击左上角的 +,选择 Add package by name...,然后输入
com.unity.render-pipelines.universal
。 - 点击 Install 安装 URP 包。
3. 创建 URP 渲染资产
URP 需要一个渲染管线资产来管理渲染设置。
-
在 Project 面板中:
- 右键点击空白处,选择 Create → Rendering → Universal Render Pipeline → Pipeline Asset (Forward)。
- 这会创建两个资产文件:
- 一个是主渲染资产(例如:
UniversalRenderPipelineAsset
)。 - 一个是质量设置文件(例如:
UniversalRenderPipelineAsset_Renderer
)。
- 一个是主渲染资产(例如:
-
配置管线:
- 打开 Edit → Project Settings → Graphics。
- 在 Scriptable Render Pipeline Settings 中,拖入刚刚创建的
UniversalRenderPipelineAsset
。
4. 配置 Quality 设置
- 打开 Edit → Project Settings → Quality。
- 每个质量级别下(如 Low、Medium、High)都需要手动设置:
- 在 Render Pipeline Asset 中,拖入同样的
UniversalRenderPipelineAsset
。
- 在 Render Pipeline Asset 中,拖入同样的
5. 升级材质到 URP 格式
内置渲染管线的材质需要转换为 URP 支持的材质。
- 打开 Unity 的顶部菜单:
Edit → Rendering → Materials → Convert All Built-in Materials to URP。 - Unity 会自动将支持的材质转换为 URP/Lit 或类似的 Shader。
- 注意:自定义 Shader 需要手动迁移或重新创建。
6. 替换不兼容的着色器
如果你的项目中使用了自定义着色器或内置的不支持 URP 的着色器:
- 需要手动重写 Shader,使用 Shader Graph 或根据 URP 的着色器模板进行修改。
- Shader Graph 可以在 Package Manager 中安装,然后用可视化界面创建兼容的 Shader。
7. 检查并更新后处理效果
URP 有自己的后处理系统,不支持内置管线的后处理设置。
- 检查场景中是否有 Post-Processing Volume。
- 在 URP Settings 中配置全局后处理效果:
- 添加后处理 Volume。
- 在 Volume 中配置新的效果(如 Bloom、Color Grading 等)。
8. 测试和调整项目
-
测试场景和性能:
- 在多个平台上运行场景,检查画面效果是否正常。
- 检查是否有材质、光照或特效丢失的问题。
-
调整光照:
- URP 使用新的光照和阴影系统,可能需要重新调整灯光设置。
注意事项
- 备份项目: 转换渲染管线是不可逆的过程,尤其是材质转换,因此务必在开始前备份项目。
- 不兼容的功能: 内置管线的一些功能(如某些自定义 Shader)可能需要额外工作才能兼容 URP。
- 性能优化: URP 是为性能优化设计的,但默认设置可能需要根据你的项目需求微调。
总结
- 安装 URP 包。
- 创建并应用 URP 渲染管线资产。
- 转换材质为 URP 支持的格式。
- 替换自定义着色器并调整后处理效果。
- 测试项目,确保画面和性能正常。
通过以上步骤,你可以顺利地将项目从内置渲染管线升级到 URP,并享受到更好的性能和现代化特性!
二、将URP管线切换为内置渲染管线(BRP)
将 Unity 项目的 URP(Universal Render Pipeline) 渲染管线改回 内置渲染管线,需要撤销 URP 的配置并恢复材质和设置为内置管线支持的格式。以下是具体步骤:
1. 移除 URP 渲染管线设置
- 打开 Unity 的顶部菜单:
Edit → Project Settings → Graphics。 - 在 Graphics Settings 中,找到 Scriptable Render Pipeline Settings,并将其设置为 None。
- 这会使项目回退到 Unity 的内置渲染管线。
2. 修改 Quality 设置
- 打开 Edit → Project Settings → Quality。
- 在每个质量级别下(如 Low、Medium、High):
- 将 Render Pipeline Asset 设置为 None。
3. 检查并替换材质
URP 使用的材质(如 Universal Render Pipeline/Lit
)在内置渲染管线中不兼容,需要还原或重新替换材质。
自动替换材质:
Unity 提供了一个工具可以还原材质:
- 打开 Unity 的顶部菜单:
Edit → Rendering → Materials → Convert All Materials to Built-in。 - Unity 会自动将支持的材质转换回内置渲染管线的标准材质(如
Standard
)。
手动调整材质:
- 如果工具未能自动转换,手动检查场景中使用的材质,并将材质的 Shader 更改为内置管线支持的 Shader(如
Standard
)。
4. 替换不兼容的着色器
-
URP Shader 替换:
- 如果你使用了 URP 的自定义着色器或 Shader Graph 创建的着色器,这些需要手动替换为内置管线支持的 Shader。
- 例如,将
URP/Lit
替换为内置的Standard
。
-
自定义着色器:
- 自定义 Shader 如果无法正常工作,可能需要根据内置渲染管线重新编写。
5. 更新后处理效果
URP 的后处理系统与内置管线不兼容,因此需要移除或替换:
- 检查场景中的 Post Processing Volume 或 Post Processing Layer。
- 使用内置管线的后处理方式(通常是通过 Camera 的后处理设置)。
6. 调整灯光设置
URP 和内置渲染管线的光照系统有所不同,切换后可能需要重新调整灯光:
- 检查灯光的类型和范围。
- 调整光照贴图(Lightmap)或实时灯光的设置。
- 确保场景中的阴影和光照效果符合预期。
7. 移除 URP 相关资源(可选)
- 如果确定项目不再需要 URP,可以移除 URP 相关的资源和包:
- 打开 Window → Package Manager。
- 找到 Universal RP,并点击 Remove 卸载 URP 包。
- 删除项目中与 URP 相关的资产文件(如
UniversalRenderPipelineAsset
)。
8. 测试和验证
- 运行场景,检查画面效果是否符合预期。
- 检查是否有丢失的材质、Shader 或特效。
- 针对目标平台测试性能,确保没有因切换导致的异常问题。
注意事项
- 材质转换: 部分材质可能无法自动还原,需要手动替换 Shader。
- 项目备份: 切换渲染管线可能会影响项目资源,务必在操作前备份项目。
- 后处理替换: 如果项目中依赖 URP 的后处理效果,可能需要重新配置内置管线的后处理方式。
总结
- 清空 Scriptable Render Pipeline Settings 和 Quality 的 Render Pipeline Asset。
- 将材质和 Shader 替换为内置管线支持的格式(如
Standard
)。 - 替换或移除 URP 的后处理和光照设置。
- 测试场景,确保画面和功能正常。
通过这些步骤,你可以将项目从 URP 渲染管线切换回内置渲染管线,恢复兼容性和传统工作流程。
系列文章:
1. 《初识渲染管线》
2. 《如何选择渲染管线?》
3. 《如何查看当前项目使用的渲染管线?》
4. 《如何在BRP和URP管线之间切换?》