因为光照贴图只能对静态对象产生影响,几乎不可能使其为移动的对象赋予光照效果。为了解决这个问题,Unity提供了灯光探测器功能。灯光探测器可放置于场景光源周边,烘焙光照贴图时,Unity可以预先保存各灯光探测器的光源数据。游戏运行时,这些灯光探测器会将保存的数据传递给其附近的移动对象,实时改变其颜色,表现出实时光照一样的效果。
一、新建个场景,如图
二、放置灯光探测器,如图
Component->Rendering->Light Probe Group
三、烘焙场景
烘焙前先把所有灯光的Mode属性设置为Baked
四、烘焙完场景后,隐藏所以灯光,然后移动Cube
可以看到周围的灯光探测器所保存的光照信息影响到了移动中的Cube对象颜色。
如果我们希望灯光探测器的光照值反映到模型身上的指定部位,可以设置SkinnedMeshRenderer的Anchor Override属性,比如我们希望从人物模型的头部开始变化,如图:
小结
同时使用灯光探测器与光照贴图即可实现实时光照效果,它们可以提供更自然、更高质量的游戏视觉环境。