Version: 1.7
语言 : 中文
虚拟阴影贴图
阴影

如何使用虚拟阴影贴图

团结引擎的虚拟几何体系统,是实现虚拟阴影贴图的基础。首先,您需要创建HDRP项目,并且手动开启项目的虚拟几何体功能,具体参考如何使用虚拟几何体。否则,无法正确开启虚拟阴影贴图。

当开启虚拟几何体功能后,通过选择Edit -> Project Settings -> Quality -> HDRP,找到并开启Virtual Shadow Map下拉框的Globally Enabled选项。此时,虚拟阴影贴图功能就被开启了。

虚拟阴影贴图选项
虚拟阴影贴图选项
选项 描述
Globally Enabled 启用虚拟阴影贴图功能
Cache Enabled 启用缓存功能,重用已有的物理页,只渲染当前帧需要更新的页
Directional Light Cache Disabled 禁用平行光的缓存功能,每帧重新渲染平行光的阴影深度
Separate Dynamic and Static Pages 开启后,对动态物体和静态物体分别渲染阴影,有助于减少对后者的阴影渲染操作
Clipmap Min Level 指定平行光Clipmap的最低级别
Clipmap Max Level 指定平行光Clipmap的最高级别
Single Page Mode 让某些局部光使用单页阴影贴图(128 x 128)。Off:所有局部光都使用高精度阴影;Distant Local Lights Only:只有远处的局部光使用单页阴影贴图;All Local Lights:所有局部光都使用单页阴影贴图
Soft Shadow Mode 软阴影模式。Off:只渲染硬阴影;PCF:使用PCF算法渲染软阴影;PCSS:使用PCSS算法渲染软阴影

补充:

  • 平行光使用Clipmap来扩展高质量阴影的覆盖范围。每个Clipmap级别拥有单独的16k x 16k虚拟阴影贴图,覆盖半径是前一级别的两倍。
  • 局部光包括点光源和聚光灯。聚光灯使用一张16k x 16k虚拟阴影贴图的8个Mipmap级别来管理阴影的LOD层级,其中级别0包含128 x 128个页,其他级别的页数是前一级别的一半。类似地,点光源使用6张16k x 16k虚拟阴影贴图的Mipmap。

软阴影

虚拟阴影贴图提供两种软阴影算法,来提升视觉真实感。

  1. PCF:开销较低,适合对性能敏感的场景。但只能提供均匀的半影范围,不如PCSS真实。
  2. PCSS:根据遮挡物与接收物的距离动态调整半影范围,实现“近处锐利、远处柔和”的效果,更接近真实物理现象。但开销较高,用户可以通过调节相关参数来平衡效果与性能。

将Soft Shadow Mode设置为PCSS后,您可以在灯光的Inspector > Shadows栏勾选Show Additional Properties,来显示VSM Soft Shadow Settings,它包含了VSM的PCSS算法相关参数。

VSM Soft Shadow Settings沿用了级联阴影贴图PCSS的High Quality Setting的所有参数,以提供一致的使用体验。原有参数如Blocker Sample Count,可以参考Light-Component | High Definition RP | 14.0.12。在此,只介绍平行光的VSM Soft Shadow Settings新增的PCSS参数。

平行光VSM新增的PCSS参数
平行光VSM新增的PCSS参数
参数 描述
Max Penumbra Size 世界空间下的最大半影范围。若增大此值,您可能需要同时增大Blocker Sample Count和Filter Sample Count来保证阴影质量。
Max Sampling Distance 世界空间下的最大采样距离。降低此值有助于减少漏光现象,但可能导致自阴影。
Filter Stage Angular Diameter VSM通过对样本应用zOffset形成采样圆锥。此参数定义了Filter阶段的采样圆锥的角半径,增大此值有助于避免遗漏近处的遮挡物,但可能导致自阴影。
Blocker Search Angular Diameter VSM通过对样本应用zOffset形成采样圆锥。此参数定义了Blocker Search阶段的采样圆锥的角半径,增大此值有助于避免遗漏近处的遮挡物,但可能导致自阴影。
Blocker Search Clump Exponent 控制Blocker Search阶段的样本分布。此值越大,样本越往中心聚集;否则,样本越往边缘聚集。值为1时,样本呈均匀圆盘分布。

可视化功能

开启虚拟阴影贴图后,您可以通过Window -> Analysis -> Rendering Debugger -> GDRP -> Virtual shadow map Visualization下拉框,来启用虚拟阴影贴图的可视化功能。

虚拟阴影贴图包含以下可视化选项:

选项 描述
None 无任何可视化效果
ClipmapLevelOrMipLevel 显示每个位置的阴影精度层级,平行光对应ClipmapLevel,局部光对应MipLevel
RequestPages 显示每个位置请求的虚拟页
CachedPages 显示每个位置的虚拟页的缓存情况。绿色:完全缓存;蓝色:只有静态部分缓存;红色:未缓存
ShadowFactor 显示每个位置的阴影系数

下图展示了RequestPages的可视化效果。

RequestPages
RequestPages
虚拟阴影贴图
阴影