Version: 6000.3
语言: 中文
在通用渲染管线中配置阴影分辨率
URP 中的屏幕空间环境光遮挡 (SSAO)

在 URP 中添加屏幕空间阴影

屏幕空间阴影
示例场景中的屏幕空间阴影。

你可以将屏幕空间阴影渲染器功能添加到通用渲染管线获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管线中进行选择,或编写自己的渲染管线。更多信息
请参阅术语表
(URP) 渲染器。这使得 URP 使用单个渲染纹理(render texture一种特殊类型的纹理,在运行时创建和更新。要使用它们,请先创建一个新的渲染纹理,并指定要渲染到其中的摄像机之一。然后,你可以在材质中使用渲染纹理,就像使用常规纹理一样。更多信息
请参阅术语表
从主定向光源计算和绘制阴影,而不是多个阴影级联纹理。

屏幕空间阴影渲染器功能不会影响阴影的外观。

如果你的项目使用前向渲染器,屏幕空间阴影可能会加快渲染速度,因为通用渲染管线(URP)不需要访问多个阴影级联纹理。

屏幕空间阴影具有以下限制:

  • URP 添加了深度预通道,以便它可以对深度纹理进行采样。这可能会降低使用基于图块的渲染的移动平台上的性能。有关深度预处理的更多信息,请参阅深度启动模式。
  • URP 会创建一个屏幕空间阴影纹理,该纹理会使用更多内存。

屏幕空间阴影纹理
上一个图像的屏幕空间阴影纹理。

启用屏幕空间阴影

要将屏幕空间阴影添加到项目中,请添加屏幕空间阴影渲染器功能。请参阅添加渲染器功能

URP 不会计算或绘制透明对象的屏幕空间阴影。URP 对透明对象使用阴影贴图。

查看屏幕空间阴影

使用 帧调试器(Frame Debugger) 查看绘制阴影的渲染通道。检查以下渲染通道:

  • ScreenSpaceShadows,用于创建屏幕空间阴影纹理。
  • MainLightShadow,用于创建阴影贴图纹理。

检查 DrawOpaqueObjects 渲染通道,检查 URP 使用哪个阴影纹理在每个对象上绘制阴影。

使用屏幕空间阴影纹理的阴影
启用了屏幕空间阴影的帧调试器。DrawOpaqueObjects 呈现通道中的对象使用 _ScreenSpaceShadowmapTexture

使用阴影贴图的阴影
禁用屏幕空间阴影的帧调试器。DrawOpaqueObjects 呈现通道中的对象使用 TempBuffer 398 2048x1024TempBuffer 399 2048x2048,它们是来自 MainLightShadow 呈现通道的阴影贴图纹理。

在通用渲染管线中配置阴影分辨率
URP 中的屏幕空间环境光遮挡 (SSAO)