本页介绍在场景使用的 Lighting Settings Asset 的 Lighting Mode 属性设置为 Shadowmask 时,该场景中所有混合光源的行为。
Similar to Baked Indirect Lighting Mode, Shadowmask Lighting Mode combines real-time direct lighting with baked indirect lighting. However, Shadowmask Lighting Mode differs from Baked Indirect Lighting Mode in the way that it renders shadows. Shadowmask Lighting Mode makes it possible for Unity to combine baked and real-time shadows at runtime and render shadows in the far distance. It does this by using an additional lightmap texture known as a shadow mask, and by storing additional information in Light Probes. Unity generates Shadow masks and Light Probe occlusion data for baked shadows.
Shadowmask Lighting Mode provides the highest fidelity shadows among all the Lighting Modes, but has the highest performance cost and memory requirements. It’s suitable for rendering realistic scenes where distant GameObjects are visible, such as open worlds, on high-end or mid-range hardware.
See render pipeline feature comparison for more information about support for Shadowmask Lighting Mode across render pipelines.
Use the Quality Settings panel to set the Shadowmask Mode Unity uses at runtime.
将场景的 Lighting Mode 设置为 Shadowmask 并且项目使用 Distance Shadowmask 质量设置时,混合光源的行为如下。
将场景的 Lighting Mode 设置为 Shadowmask 并且项目使用 Shadowmask 质量设置时,混合光源的行为如下。
在内置渲染管线中:
在 HDRP 中:
按照 HDRP Shadowmask 光照模式文档中的说明进行操作。
可以使用 Shadow Distance 属性来限制 Unity 绘制实时阴影的最大距离。
在运行时,Unity 使用阴影遮罩来确定某个像素是否在阴影中。阴影遮罩纹理包含有关烘焙光源的遮挡信息。该纹理与相应的光照贴图共享相同的 UV 布局和分辨率。还针对每个纹素包含最多四个光源的遮挡信息(以 RGBA 格式存储)。
如果超过四个光源发生重叠,则多余光源会回退至烘焙光照 (Baked Lighting)。烘焙系统会决定哪个光源回退至烘焙光照,并在各烘焙之间保持一致,除非您修改其中某个重叠的光源。光照探针也会接收最多四个光源的相同信息。
Unity 将独立于接收阴影的对象来计算光源重叠。因此,一个对象可受到全部来自同一个阴影遮罩/探针通道的十个不同混合光源的影响,只要这些光照包围体在空间中的任何点都不重叠即可。如果某些光源重叠,则 Unity 会使用更多通道。如果某个光源确实发生重叠而所有四个通道都在使用中,则该光源将回退至完全烘焙。