本页面介绍如何将通用 渲染管线一系列操作,将场景内容显示在屏幕上。Unity 允许您选择预构建的渲染管线,或编写自己的渲染管线。 更多信息
参见 术语表 (URP) 从旧版本升级到 10.1.x 版本。
从 10.0.x 版本开始,URP 可以生成名为 _CameraNormalsTexture
的法线纹理。要在自定义 着色器在 GPU 上运行的程序。 更多信息
参见 术语表 中渲染到此纹理,请添加名为 DepthNormals
的通道。有关示例,请检查 Lit.shader
中的实现。
URP 10.0.x 实现屏幕空间 环境光遮蔽一种方法来近似估计有多少环境光(非来自特定方向的光)可以照射到表面上的一个点。
参见 术语表 (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,请先迁移使用该包的特效。