版本:Unity 6 (6000.0)
语言:英语
设置 URP 中阴影图集的大小
URP 中的屏幕空间环境光遮蔽 (SSAO)

在 URP 中添加屏幕空间阴影

Screen-space shadows
示例场景中的屏幕空间阴影。

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

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

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

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

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

Screen-space shadows texture
前一张图像的屏幕空间阴影纹理。

启用屏幕空间阴影

要将屏幕空间阴影添加到您的项目,请添加屏幕空间阴影渲染器特性。请参阅 添加渲染器特性

URP 不会为透明物体计算或绘制屏幕空间阴影。URP 而是为透明物体使用阴影贴图。

查看屏幕空间阴影

使用 帧调试器 查看绘制阴影的渲染传递。检查以下渲染传递

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

检查 DrawOpaqueObjects 渲染传递以检查 URP 使用哪个阴影纹理在每个物体上绘制阴影。

Shadows using the screen-space shadows texture
启用了屏幕空间阴影的帧调试器。DrawOpaqueObjects 渲染传递中的物体使用 _ScreenSpaceShadowmapTexture

Shadows using shadow maps
禁用了屏幕空间阴影的帧调试器。DrawOpaqueObjects 渲染传递中的物体使用 TempBuffer 398 2048x1024TempBuffer 399 2048x2048,它们是来自 MainLightShadow 渲染传递的阴影贴图纹理。

设置 URP 中阴影图集的大小
URP 中的屏幕空间环境光遮蔽 (SSAO)