Version: Unity 6.0 (6000.0)
语言 : 中文
在运行时移动光照探针
光照探针参考

光照探针故障排除

振铃

在某些情况下,光照探针会出现一种被称为“振铃”的不良行为。这种情况通常在光照探针周围的光线存在明显差异时发生。例如,如果光照探针的一侧有明亮的光线,而另一侧没有光线,那么背面的光强就会出现“过冲”。这种过冲会在背面产生光斑。

光照探针振铃的实例
光照探针振铃的实例

有几种方法可以解决此问题:

  • 为光源探针群组组件启用__移除振铃 (Remove Ringing)__。Unity 会自动移除意外出现的光斑。但这种方法通常会降低光照探针的准确度,并降低光线的对比度,因此您必须检查视觉效果。
  • 在游戏中设置障碍,使玩家无法到达可以看到光斑的位置。
  • 避免将直射光烘焙到光照探针中。直射光往往具有明显的不连续性(例如阴影边缘),因此不适合光照探针。要仅烘焙间接光,请使用混合光照

光照探针放置的故障排除

选择光照探针的位置时,必须考虑到光照在光照探针组之间进行插值的情况。如果光照探针未能充分覆盖场景中光照的变化,就会出现问题。

以图示例显示了一个夜间场景,两侧有两个明亮街灯,中间有一个暗区。如果仅在街灯附近放置光照探针,而在暗区中不放置,则街灯的光照会跨越暗区“渗透”到移动对象上。这是因为光照会从一个亮点插值到另一亮点,而中间没有关于暗区的信息。

此图像显示了不佳的光照探针放置。两个街灯之间的暗区内没有放置探针,因此暗区完全没有被包含在插值中。
此图像显示了不佳的光照探针放置。两个街灯之间的暗区内没有放置探针,因此暗区完全没有被包含在插值中。

如果使用实时或混合光源,此问题可能不太明显,因为只有_间接_光才会跨越间隙导致光渗。使用完全烘焙光源时此问题会更明显,因为在这种情况下,移动物体上的直射光也是由光源探针那里插值而来的。示例场景中烘焙了两个街灯,因此移动对象会从光照探针那里获得直射光。结果如下图所示:移动对象(救护车)在穿过暗区时仍然获得了明亮的光照,而这不是我们想要的效果。黄色线框四面体表明,插值发生在街道明亮的一端和另一端之间。

这是我们不想要的效果:救护车在穿过暗区时仍然获得了明亮的光照,因为在暗区中没有放置光照探针。

要解决此问题,请在暗区中放置更多光照探针,如下所示:

现在场景的暗区中也有了光照探针。结果如图,行驶的救护车从场景的一侧移动到另一侧时,救护车上的光照变暗了。

救护车在场景中心时受到的光照变暗,这符合要求。
救护车在场景中心时受到的光照变暗,这符合要求。

在运行时移动光照探针
光照探针参考
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961