升级到通用渲染管线 7.2.0 版
本页介绍如何从旧版本的通用渲染管线 (URP) 升级到最新版本。
为游戏主机构建项目
要为 PlayStation 4 或 Xbox One 构建项目,您需要针对每个要支持的平台安装一个额外的包。
有关更多信息,请参阅有关为游戏主机进行构建的文档。
需要深度纹理
在以前版本的 URP 中,如果启用了后期处理,可能会导致管线始终需要深度。我们改进了后期处理的集成,仅在启用景深 (Depth of Field)、运动模糊 (Motion Blur) 或 SMAA 效果时才需要管线深度。这样可以在很多情况下提高性能。
由于使用后期处理的摄像机在默认情况下不再需要深度,因此如果将摄像机用于其他效果(例如软粒子),现在必须手动指示摄像机需要深度。
要使所有摄像机都需要深度,请在管线资源中启用 Depth Texture
选项。要使单个摄像机需要深度,请在 Camera Inspector 中将 Depth Texture
选项设置为 On
。
采样主光源的阴影
在先前版本的 URP 中,如果为主光源启用了阴影级联,则将在屏幕空间通道中解析阴影。管线现在总是在渲染不透明或透明对象时解析阴影。这种行为可确保一致性并解决了许多与阴影相关的问题。
如果使用自定义 HLSL 着色器并采样 _ScreenSpaceShadowmapTexture
纹理,则必须改用 GetMainLight
函数将它们升级为采样阴影。
例如:
float4 shadowCoord = TransformWorldToShadowCoord(positionWorldSpace);
Light mainLight = GetMainLight(inputData.shadowCoord);
// 现在可以使用阴影来应用实时遮挡
half shadow = mainLight.shadowAttenuation;
还必须在 .shader 文件中定义以下内容,以确保自定义着色器可以正确接受阴影:
# pragma multi_compile _ _MAIN_LIGHT_SHADOWS
# pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
透明对象接受阴影
透明对象现在可以在使用阴影级联时接受阴影。还可以选择禁止透明对象接受阴影以提高性能。为此,请在前向渲染器资源中禁用 Transparent Receive Shadows
。