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

    升级到通用渲染管线 11.0.x 版

    本页介绍如何从旧版本的通用渲染管线 (URP) 升级到 11.0.x 版。

    从 URP 10.0.x–10.2.x 进行升级

    1. 以下 Shader Graph 着色器的文件名已更名。新文件名不含空格:
      Autodesk Interactive
      Autodesk Interactive Masked
      Autodesk Interactive Transparent

      如果代码中使用 Shader.Find() 方法来搜索着色器,请从着色器名称中移除空格,例如,Shader.Find("AutodeskInteractive)。

    从 URP 7.2.x 及更高版本进行升级

    1. URP 11.x.x 不支持 Post-Processing Stack v2 包。如果项目使用 Post-Processing Stack v2 包,请先迁移使用这个包的效果。

    DepthNormals 通道

    从 10.0.x 版开始,URP 可以生成一个名为 _CameraNormalsTexture 的法线纹理。要在自定义着色器中渲染到此纹理,请添加名为 DepthNormals 的通道。有关示例,请参阅 Lit.shader 中的实现。

    屏幕空间环境光遮挡 (SSAO)

    URP 10.0.x 实现了屏幕空间环境光遮挡 (Screen Space Ambient Occlusion, SSAO) 效果。

    如果打算将 SSAO 效果与自定义着色器一起使用,请考虑以下与 SSAO 相关的实体:

    • _SCREEN_SPACE_OCCLUSION 关键字。

    • Input.hlsl 在 InputData 结构中包含新的声明 float2 normalizedScreenSpaceUV。

    • Lighting.hlsl 包含 AmbientOcclusionFactor 结构,其中包含用于计算间接和直接遮挡的变量:

      struct AmbientOcclusionFactor
      {
          half indirectAmbientOcclusion;
          half directAmbientOcclusion;
      };
      
    • Lighting.hlsl 包含以下用于对 SSAO 纹理进行采样的函数:

      half SampleAmbientOcclusion(float2 normalizedScreenSpaceUV)
      
    • Lighting.hlsl 包含以下函数:

      AmbientOcclusionFactor GetScreenSpaceAmbientOcclusion(float2
      normalizedScreenSpaceUV)
      

    要在自定义着色器中支持 SSAO,请在着色器中添加 DepthNormals 通道和 _SCREEN_SPACE_OCCLUSION 关键字。有关示例,请参阅 Lit.shader。

    如果自定义着色器实现了自定义光照函数,请使用函数 GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV) 获取用于光照计算的 AmbientOcclusionFactor 值。

    阴影法线偏差

    在 11.0.x 中,用于应用阴影法线偏差 (Shadow Normal Bias) 的公式已稍作修正,以便更好地处理精准光源。 因此,为了准确匹配早期版本的阴影轮廓,可能需要在某些场景中调整参数。通常,对方向光使用 1.4 而不是 1.0 就足够了。

    从 URP 7.0.x-7.1.x 进行升级

    1. 先升级到 URP 7.2.0。请参阅升级到通用渲染管线 7.2.0 版。

    2. URP 8.x.x 不支持 Post-Processing Stack v2 包。如果项目使用 Post-Processing Stack v2 包,请先迁移使用这个包的效果。

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