docs.unity3d.com
    显示 / 隐藏目录

    升级到通用渲染管线 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。

    返回到顶部
    Copyright © 2023 Unity Technologies — 商标和使用条款
    • 法律条款
    • 隐私政策
    • Cookie
    • 不要出售或分享我的个人信息
    • Your Privacy Choices (Cookie Settings)