本页介绍在将场景的 Lighting Mode 属性设置为 Shadowmask 时,该场景中所有混合光源的行为。
类似于 Baked Indirect 光照模式,Shadowmask 光照模式将实时直接光照与烘焙间接光照结合在一起。但是,Shadowmask 光照模式与 Baked Indirect 光照模式的不同之处在于渲染阴影的方式。Shadowmask 光照模式允许 Unity 在运行时结合烘焙阴影和实时阴影,并允许渲染远处的阴影。实现这一点的方法是使用称为“阴影遮罩”的附加光照贴图纹理并将附加信息存储在光照探针中。
Shadowmask 光照模式在所有光照模式中提供最高保真度的阴影,但需要的性能成本和内存要求也是最高的。此模式适用于在高端或中档硬件上渲染远处游戏对象可见时的真实场景,例如空旷的空间世界。
Shadowmask 光照模式有以下质量设置:
将场景的 Lighting Mode 设置为 Shadowmask 并且项目使用 Distance Shadowmask 质量设置时,混合光源的行为如下。
将场景的 Lighting Mode 设置为 Shadowmask 并且项目使用 Shadowmask 质量设置时,混合光源的行为如下。
在内置渲染管线中:
1.打开 Lighting 窗口(菜单:__Window__ > Rendering > Lighting Settings__)。 2.选择 Scene__ 选项卡。 3.导航到 Mixed Lighting。 4.使用下拉菜单将 Lighting Mode 设置为 Shadowmask。 5.打开 Quality Settings(菜单:Edit > Project Settings,然后选择 Quality 类别)。 6.使用 Shadowmask Mode 下拉菜单选择 Shadowmask 或 Shadowmask Distance。
在 HDRP 中:
按照 HDRP Shadowmask 光照模式文档中的说明进行操作。
可以使用 Shadow Distance 属性来限制 Unity 绘制实时阴影的最大距离。
在运行时,Unity 使用阴影遮罩来确定某个像素是否在阴影中。阴影遮罩纹理包含有关烘焙光源的遮挡信息。该纹理与相应的光照贴图共享相同的 UV 布局和分辨率。还针对每个纹素包含最多四个光源的遮挡信息(以 RGBA 格式存储)。
如果超过四个光源发生重叠,则多余光源会回退至烘焙光照 (Baked Lighting)。烘焙系统会决定哪个光源回退至烘焙光照,并在各烘焙之间保持一致,除非您修改其中某个重叠的光源。光照探针也会接收最多四个光源的相同信息。
Unity 将独立于接收阴影的对象来计算光源重叠。因此,一个对象可受到全部来自同一个阴影遮罩/探针通道的十个不同混合光源的影响,只要这些光照包围体在空间中的任何点都不重叠即可。如果某些光源重叠,则 Unity 会使用更多通道。如果某个光源确实发生重叠而所有四个通道都在使用中,则该光源将回退至完全烘焙。