团结引擎的虚拟几何体系统,是实现虚拟阴影贴图的基础。首先,您需要创建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算法渲染软阴影 |
补充:
虚拟阴影贴图提供两种软阴影算法,来提升视觉真实感。
将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参数。
参数 | 描述 |
---|---|
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的可视化效果。