本页介绍如何从旧版本的通用渲染管线 (URP) 升级到 10.0.x 版。
从 10.0.x 版开始,URP 可以生成名为 _CameraNormalsTexture 的法线纹理。要在自定义着色器中渲染到此纹理,请添加名为 DepthNormals 的通道。有关示例,请查看 Lit.shader 中的实现。
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 值。
先升级到 URP 7.2.0。请参阅升级到通用渲染管线 7.2.0 版。
URP 8.x.x 不支持 Post-Processing Stack v2 包。如果项目使用 Post-Processing Stack v2 包,请先迁移使用这个包的效果。