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

在 URP 中添加屏幕空间阴影

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

您可以将屏幕空间阴影渲染器功能 (Shadows Renderer Feature) 添加到通用渲染管线 (URP) 渲染器。这使得 URP 使用单个渲染纹理而不是多个阴影级联纹理来计算和绘制主方向光的阴影。

屏幕空间阴影渲染器功能 (Shadows Renderer Feature) 不会影响阴影的外观。

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

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

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

屏幕空间阴影纹理
前面图像的屏幕空间阴影纹理。

启用屏幕空间阴影

要将屏幕空间阴影添加到项目中,请添加屏幕空间阴影渲染器功能 (Screen Space Shadows Renderer Feature)。请参阅添加渲染器功能

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

查看屏幕空间阴影

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

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

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

使用屏幕空间阴影纹理的阴影
启用了屏幕空间阴影的帧调试器 (Frame Debugger)。DrawOpaqueObjects 渲染通道中的对象使用 _ScreenSpaceShadowmapTexture

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

在通用渲染管线中配置阴影分辨率
URP 中的屏幕空间环境光遮蔽 (SSAO)
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961