使用自适应探针体积 (Adaptive Probe Volumes) 时,可以启用天空遮挡。天空遮挡意味着当游戏对象从天空采样颜色时,如果光线无法到达游戏对象,Unity 就会调暗采样的颜色。
在 Unity 中,天空遮挡使用来自环境探针的天空颜色,该颜色会在运行时更新。这意味着随着天空颜色的变化,可以动态地为游戏对象打光。例如,可以将天空颜色从从亮调暗,以模拟昼夜循环的效果。
如果启用天空遮挡,自适应探针体积的烘焙时间可能会变长,并且 Unity 可能在运行时使用更多内存。
启用天空遮挡后,Unity 会在每个自适应探针体积的探针中烘焙一个额外的静态天空遮挡值天空遮挡值表示探针从天空接收到的间接光量,其中包括从静态游戏对象反弹的光线。
在运行时,当静态或动态游戏对象对自适应探针体积探针进行采样时,Unity 会通过两个值来估算来自天空的光线:
首先,启用 GPU 光照贴图程序。如果改用渐进式 CPU,Unity 不支持天空遮挡。
要启用天空遮挡,请执行以下步骤:
要更新光照数据,还必须在启用或禁用天空遮挡后烘焙自适应探针体积。
要在运行时更新来自天空的光照,必须使用场景中环境光的颜色,而不是天空盒。若要使用颜色,请执行以下操作:
若要在运行时更新来自天空的光照,可执行以下任一操作:
RenderSettings API 中的属性来更改天空颜色,例如 ambientSkyColor。
当对象对环境探针进行采样时,默认情况下 Unity 使用对象的表面法线作为天空方向。这个方向可能与光线的实际来源方向不匹配,例如,当对象处于室内,而天空光需要从其他物体反弹后才能照射到该对象时,就会出现这种情况。
Unity 可以计算、存储和使用每个自适应探针体积探针的准确方向,同时考虑光线反弹以提高准确性。这使得天空遮挡更加准确,尤其是在像洞穴这种探针无法直接“看到”天空的区域,或者当天空颜色对比强烈且光线从特定方向(如透过窗户)射入时。
要启用此功能,请在光照窗口的自适应探针体积 (Adaptive Probe Volumes) 中启用天空方向 (Sky Direction)。
如果启用天空方向 (Sky Direction),则会有以下情况:
要覆盖 Unity 使用的方向,可以使用探针调整体积组件。