Version: Unity 6.0 (6000.0)
语言 : 中文
使用光照场景烘焙不同的光照设置
优化自适应探针体积数据加载

在运行时使用天空遮挡更新天空光照

使用自适应探针体积 (Adaptive Probe Volumes) 时,可以启用天空遮挡。天空遮挡意味着当游戏对象从天空采样颜色时,如果光线无法到达游戏对象,Unity 就会调暗采样的颜色。

在 Unity 中,天空遮挡使用来自环境探针的天空颜色,该颜色会在运行时更新。这意味着随着天空颜色的变化,可以动态地为游戏对象打光。例如,可以将天空颜色从从亮调暗,以模拟昼夜循环的效果。

如果启用天空遮挡,自适应探针体积的烘焙时间可能会变长,并且 Unity 可能在运行时使用更多内存。

天空遮挡的工作原理

启用天空遮挡后,Unity 会在每个自适应探针体积的探针中烘焙一个额外的静态天空遮挡值天空遮挡值表示探针从天空接收到的间接光量,其中包括从静态游戏对象反弹的光线。

在运行时,当静态或动态游戏对象对自适应探针体积探针进行采样时,Unity 会通过两个值来估算来自天空的光线:

  • 来自环境探针的天空颜色,该颜色会在天空颜色变化时更新。
  • 天空遮挡值,该值是静态的。

启用天空遮挡

首先,启用 GPU 光照贴图程序。如果改用渐进式 CPU,Unity 不支持天空遮挡。

  1. 前往窗口 (Window) > 渲染 (Rendering) > 光照 (Lighting)
  2. 转到场景 (Scene) 面板。
  3. 光照贴图程序 (Lightmapper) 设置为渐进式 GPU (Progressive-GPU)

要启用天空遮挡,请执行以下步骤:

  1. 转到自适应探针体积 (Adaptive Probe Volumes) 面板。
  2. 启用天空遮挡 (Sky Occlusion)

要更新光照数据,还必须在启用或禁用天空遮挡后烘焙自适应探针体积

在运行时更新光照

要在运行时更新来自天空的光照,必须使用场景中环境光的颜色,而不是天空盒。若要使用颜色,请执行以下操作:

  1. 前往窗口 (Window) > 渲染 (Rendering) > 光照 (Lighting)
  2. 转到环境 (Environment) 面板。
  3. 来源 (Source) 设置为渐变 (Gradient)颜色 (Color)

若要在运行时更新来自天空的光照,可执行以下任一操作:

启用更准确的天空方向数据

当对象对环境探针进行采样时,默认情况下 Unity 使用对象的表面法线作为天空方向。这个方向可能与光线的实际来源方向不匹配,例如,当对象处于室内,而天空光需要从其他物体反弹后才能照射到该对象时,就会出现这种情况。

Unity 可以计算、存储和使用每个自适应探针体积探针的准确方向,同时考虑光线反弹以提高准确性。这使得天空遮挡更加准确,尤其是在像洞穴这种探针无法直接“看到”天空的区域,或者当天空颜色对比强烈且光线从特定方向(如透过窗户)射入时。

要启用此功能,请在光照窗口的自适应探针体积 (Adaptive Probe Volumes) 中启用天空方向 (Sky Direction)

如果启用天空方向 (Sky Direction),则会有以下情况:

  • 烘焙时间会变长,并且在运行时 Unity 会占用更多内存。
  • 可能会出现明显的接缝,因为 Unity 不会在探针之间对天空方向数据进行插值处理。

要覆盖 Unity 使用的方向,可以使用探针调整体积组件

其他资源

使用光照场景烘焙不同的光照设置
优化自适应探针体积数据加载