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

    升级到通用渲染管线 12 版

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

    如需了解如何将针对内置渲染管线项目制作的资源转换为与 URP 兼容的资源,请参阅渲染管线转换器页面。

    从 URP 11.x.x 进行升级

    • 前向渲染器 (Forward Renderer) 资源更名为通用渲染器 (Universal Renderer) 资源。在包含 URP 12 的 Unity 编辑器中打开现有项目时,Unity 会将现有的前向渲染器资源更新为通用渲染器资源。

    • 通用渲染器资源包含 Rendering Path 属性,允许选择 Forward 或 Deferred Rendering Path。

    • ClearFlag.Depth 方法不再隐式清除模板缓冲区。应使用新的 ClearFlag.Stencil 方法。

    • URP 12 实现了渲染管线转换器 (Render Pipeline Converter) 功能。此功能取代了之前在 Edit > Render Pipeline > Universal Render Pipeline > Upgrade... 中提供的资源升级功能

    从 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 12.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 将强制通过中间渲染器进行渲染。在某些平台上,这会对性能产生重大影响。因此,渲染器功能现在应使用 ScriptableRenderPass.ConfigureInput 来声明其输入。此信息用于自动决定是否需要通过中间纹理进行渲染。

    出于兼容性原因,通用渲染器中添加了一个新属性 Intermediate Texture。因此允许使用新行为,或强制使用中间纹理。仅当渲染器功能未使用 ScriptableRenderPass.ConfigureInput 声明其输入时,才应使用后者。

    使用任何渲染器功能(不包括 URP 附带的那些功能)的所有现有通用渲染器资源都会升级以强制使用中间纹理,这样现有设置将继续正常工作。所有新创建的通用渲染器资源都将默认为新行为。

    从 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 包,请先迁移使用这个包的效果。

    从 LWRP 升级到 12.x.x

    • 从 LWRP 到 URP 12.x.x 没有直接的升级路径。按照步骤先将 LWRP 升级到 URP 11.x.x,然后从 URP 11.x.x 升级到 URP 12.x.x。
    返回到顶部
    Copyright © 2023 Unity Technologies — 商标和使用条款
    • 法律条款
    • 隐私政策
    • Cookie
    • 不要出售或分享我的个人信息
    • Your Privacy Choices (Cookie Settings)