Version: 2020.2
光照模式
Lighting Mode:Shadowmask

Lighting Mode:Baked Indirect

本页介绍在场景使用的 Lighting Settings AssetLighting Mode 属性设置为 Baked Indirect 时,该场景中所有混合光源的行为。

将场景的 Lighting Mode 设置为 Baked Indirect 时,混合光源的行为类似于实时光源,但有额外的好处是会将间接光照烘焙到光照贴图中。混合光源照亮的游戏对象会投射实时阴影,最大距离是在项目中定义的阴影距离 (Shadow Distance)

渲染管线支持

  • 内置渲染管线支持 Baked Indirect 光照模式。
  • 通用渲染管线 (URP) 支持 Baked Indirect 光照模式。
  • 高清渲染管线 (HDRP) 支持 Baked Indirect 光照模式。

混合光源行为

将场景的 Lighting Mode 设置为 Baked Indirect 时,混合光源的行为如下:

  • 混合光源照亮的动态游戏对象将接收:
    • 实时直接光照。
    • 烘焙间接光照(使用光照探针)。
    • 动态游戏对象的阴影(使用阴影贴图),不超过阴影距离 (Shadow Distance)。
    • 静态游戏对象的实时阴影(使用阴影贴图),不超过阴影距离 (Shadow Distance)。
  • 混合光源照亮的静态游戏对象将接收:
    • 实时直接光照。
    • 烘焙间接光照(使用光照贴图)。
    • 静态游戏对象的实时阴影(使用阴影贴图),不超过阴影距离 (Shadow Distance)。
    • 动态游戏对象的实时阴影(使用阴影贴图),不超过阴影距离 (Shadow Distance)。

将场景的 Lighting Mode 设置为 Baked Indirect

  1. 为场景选择 Lighting Settings Asset
  2. 在 Inspector 中,导航到 Mixed Lighting
  3. 使用下拉菜单将 Lighting Mode 设置为 Baked Indirect

阴影和运行时性能

由于混合光源中的所有阴影在 Baked Indirect 光照模式下都是实时的,因此可能会影响性能。可以使用 Shadow Distance 属性来限制 Unity 绘制实时阴影的最大距离,从而降低这种影响。

在运行时更改光源属性

在 Baked Indirect 光照模式下,可以在运行时巧妙地更改混合光源的属性。此类更改会影响混合光源对场景的实时直接光照,但不会影响混合光源对场景的烘焙间接光照。这样便可以将间接光照的优点与实时光照的某些动态功能结合起来。由于缺少预先计算的阴影,因此在 Baked Indirect 光照模式下效果特别好。

在运行时对光源属性进行更改必须特别小心,只进行微小的更改,确保不会引起实时直接光照和烘焙间接光照之间不切实际的组合。例如,如果将红色混合光源烘焙到光照贴图中,然后在运行时将其颜色从红色更改为绿色,则直接光照将为绿色,但烘焙到光照贴图中的间接光照仍为红色。此情况同样适用于在运行时移动混合光源:直接光照将跟随光源的新位置,但间接光照将保持在光源烘焙位置。

以下视频举例说明了如何略微修改混合光源而不会导致间接光照出现明显不一致问题:https://youtu.be/XN6ya31gm1I

光照模式
Lighting Mode:Shadowmask