常见问题解答 (FAQ)
本节回答有关通用渲染管线 (Universal Render Pipeline, URP) 的一些常见问题。这些问题来自于我们论坛上的 General Graphics 板块、Unity Discord 频道以及我们的支持团队。
如需了解高清渲染管线 (High Definition Render Pipeline, HDRP) 的信息,请参阅 HDRP 文档。
我可以同时使用 URP 和 HDRP 吗?
不可以。它们都是使用可编程渲染管线 (Scriptable Render Pipeline, SRP) 构建的,但它们的渲染路径和光照模型不同。
我可以从一个管线转换到另一个管线吗?
您可以从内置渲染管线转换到 URP。为此,必须重新编写资源,并重做游戏或应用程序中的光照。请参阅此升级指南了解如何将 URP 安装到现有项目中。
您可以使用我们的升级程序将内置着色器升级到 URP 着色器。对于自定义着色器,则必须手动升级它们。
_不应该_在运行时将管线资源从一个管线交换到另一个管线,并且 URP 和 HDRP 之间没有升级程序。
如何更新通用渲染管线资源包?
应该通过 Package Manager 进行更新。在 Unity 编辑器中,选择 Unity > Window > Package Manager,然后找到 Universal RP 资源包。
如果已通过 Github 手动添加了 SRP 代码或 Shader Graph,请确保将它们升级到与清单文件中的 URP 相同的资源包版本。
动态批处理 (Dynamic Batching) 去哪里了?
Dynamic Batching 复选框已从 Player Settings 移至 URP 资源。
如何在编辑器中启用双面全局光照 (Double Sided Global Illumination)?
在 Material Inspector 中,找到 Render Face,然后选择 Both。这意味着几何体的两面都会影响全局光照,因为 URP 不会剔除任何一面。
此渲染管线是否可用于桌面应用程序和游戏?
是的。图形质量和性能可跨平台扩展,因此可以为 PC 和游戏主机以及移动设备创建应用程序。
URP 目前不支持内置渲染管线的某个功能。URP 以后会支持这个功能吗?
要了解 URP 目前支持的功能,请查看比较表。
URP 不会支持标记为 Not Supported
的功能。
URP 是否支持延迟渲染器 (Deferred Renderer)?
尚不支持。我们正在努力添加对延迟渲染器的支持。
URP 是否有公开的路线图?
是。可以在此处查看。您也可以添加建议。为此,您必须输入自己的电子邮件地址,但不必创建帐户。
URP 会加入到 Unity 2019.4 LTS 版本中吗?
是。
我发现了一个错误。如何上报这个错误?
您可以使用错误报告系统上报错误。URP 错误的处理流程与所有其他 Unity 错误相同。您还可以在问题跟踪系统 (Issue Tracker) 中查看 URP 的现有错误列表。
我已将项目从内置渲染管线升级到 URP,但运行速度没有提高。为什么呢?
URP 和内置渲染管线具有不同的质量设置。虽然内置渲染管线在 Quality Settings、Graphics Settings 和 Player Settings 等不同位置配置了许多设置,但所有 URP 设置都存储在 URP 资源中。首先要做的是检查 URP 资源设置是否与内置渲染管线项目的设置相匹配。例如,如果在内置渲染管线项目中禁用了 MSAA 或 HDR,请确保在 URP 项目的 URP 资源中也禁用它们。有关配置 URP 资源的建议,请参阅 URP 资源文档。
在比较设置后,如果仍然遇到 URP 性能下降的情况,请创建错误报告并附上您的项目。
URP 不能在设备 X 或平台 Y 上运行。这符合预期吗?
不符合。请创建错误报告。
我的项目需要很长的编译时间。这符合预期吗?
我们正在研究如何更大胆地剥离着色器关键字。您可以通过在 URP 资源中禁用游戏中不需要的功能来协助着色器剥离器。如需了解影响着色器变体和构建时间的设置的详细信息,请参阅着色器剥离文档。
如何在 URP 中设置摄像机清除标志?
您可以在 Camera Inspector 中设置 Background Type 来控制摄像机颜色缓冲区的初始化方式。
URP 在什么样的渲染空间中工作?
默认情况下,URP 在渲染时使用线性颜色空间。您还可以使用非线性的伽马颜色空间。要这样做,请在 Player Settings 中进行切换。
如何使用可编程渲染通道来扩展 URP?
要创建可编程渲染通道,必须创建一个 ScriptableRendererFeature
脚本。这是因为可编程渲染功能是一个可以容纳渲染通道的容器。要在编辑器中创建可编程渲染功能,请单击 Asset > Create > Rendering > Universal Render Pipeline > Renderer Feature。