
Unity 提供了一个较为神奇的光探头功能,该功能可以解决静态网格体烘焙照明后将照明信息传递给非静态对象(动态),提前将光照存储在探测器中,因此无需计算光跟踪。
例如在下面的场景中,底部新建了一个立方体对象,使用了一种自发光的材质,对外进行照明。

在立方体上面放置了一个球体,当移动球体时,该球体并不会被立方体所影响,场景中除了球体是移动的,其他都是静态的,因此我们需要一些光照探针来将烘焙光照分布到球体上。

如果您还不会对场景进行光照烘焙,或许下面这篇3D天堂站内文章对你会有点帮助。
创建光照探针
因此,为了在球体移动时让立方体对球体具有照明效果,就需要利用 Unity 提供的光探头功能了。
此时选择球体,然后通过菜单,选择灯光下的 Light Probe Group(光探针组),就会自动创建一个类似于点线链接的科幻光线。

创建光探针组后,会看到球体的周围生成了一些黄色的小点,并与其他点进行了链接,而且可以立马看到球形以及周边模型被下面的立方体进行了照明影响。

部署光组探测器
接着我们需要对小球周边的黄色光组进行调整,点击检查器,找到 Edit Light Probes,在下面还有四个选项都是针对光探针组进行操作的,例如添加、选择所有、删除光探针、复制选定的。

因为光探针是提前将光照存储在探测器中,那么没有被探测到的则不会存储,因此我们需要对光探针组进行编辑,以便它能够正确探测到或者为不需要影响的地方做出正确调整。
可以从下图看到,当我选择左侧的四个黄点移动到教暗的区域时,整个光线就变暗了?为什么呢?这是因为那片区域本身就没有烘焙光,说白点该区域较暗没有灯光,因此光照探针就会做出正确的反应。

现在移动球体,你会发现球体外围的黄色小点跟其他小点通过黄线链接起来(有点像点线面科技效果),小球也因此有了明暗变化,记住光照探针信息的分辨率取决于部署光照探针的紧密程度。

本文总结
光照探针其实对于初学者来说也不是特难理解,当做它是一个红外线,包裹在对象表面,通过最近的光探测器(黄点)计算光照出来,并将照明信息存储,提供给对象(本例小球)实时的阴影照明情况。
该技术应用在大型烘焙光照的场景中非常合适,例如烘焙后的室内场景,而且探针支持部署上千个(黄色小点),可以避免耗时又费力的光线跟踪计算,让游戏也可以流畅运行。