在使用Unity 开发移动平台的应用时,为了保障应用的的运行帧率,我们一般将场景中最消耗资源的“实时光”烘焙成“光照贴图”。光照贴图保存了场景中所有的静态物体的光照效果,但是场景中的非静态物体, 比如:游戏角色,NPC,这些能动的角色,它们身上就不会出现光照效果。 那么如何解决这个问题那?? Unity 为了应对这种情况,推出了一个专门解决该问题的组件: “Light Probe Group”:灯光探头组。

一.灯光探头组

1.使用灯光探头组组件,我们可以在烘焙后的场景中,模拟实时光照状态下的效果。 2.Light –> Light Probe Group 添加组件;点击组件上的Edit 按钮,在正交视图下添加新的“探头”,并调整位置。 3.摆放“探头”要让探头成为一个“体积”,我们的角色在整个空间内移动的时候,无论移动到任何地方,都处于一个“体积”内,也就是说触发4 个探头。 4.在空间内摆放N 个灯光探头,成一个体积状态。然后烘焙光照贴图,在烘焙光照贴图的同时,也会烘焙这些灯光探头,这些探头会记录下当前自己所在位置的灯光信息。 然后当我们的非静态角色模型,进入到探头的范围内,角色模型会自动获取自己周围的探头上记录的光照信息,进行插值运算后,在角色模型身上模拟出真实光照的效果。 探头细节: [

](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042703-300x286.png)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042703.png) 调整好探头组: [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042701-300x158.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042701.jpg) 移动角色物体,注意影子和角色的位置细节: [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042702-300x153.png)
](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042703-300x286.png)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042703.png) 调整好探头组: [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042701-300x158.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042701.jpg) 移动角色物体,注意影子和角色的位置细节: [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042702-300x153.png)

二.注意事项

1.区域光组件 Area Light:区域光[组件]。 区域光在“实时光照”模式下是无效的,仅在“烘焙光照”模式下有用。 [

](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042705-300x196.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042705.jpg) 2.**模型自发光** 标准着色器上的自发光选项,也是可以让模型成为一个辅助烘焙光源。 [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042704-300x139.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042704.jpg) 3.注意事项: **①烘焙模式下的自发光物体也需要设置为静态。** ** ②Emission 后的值越大,自发光强度也就越大。** 4.手游场景中,为了美化场景,往往会点缀各种各样的灯光,灯光一旦多了,手游肯定会卡,所以99%的手游目前的场景还都是使用的“烘焙光照”模式。另外不单单是手游,在手机端运行的VR 项目,AR 项目,场景也是需要烘焙的。 很多项目为了体现场景的丰富性,往往会使用灯光探头组,来让这些烘焙过的灯光,对游戏角色产生环境光的影响。 5.在摆放灯光探头组的探头的时候,为了节约资源和性能优化,一般只会将角色能到达的位置,摆放探头,而不会将整个场景全部摆放。 在摆放灯光探头的时候,要注意密度,不要太高,也不要太低。在光源变大比较多,角色经常移动的地方,可以稍微密集一些,否则可以稍微松散一些。 区域光在反射探头作用下最后烘焙的效果: [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042706-300x174.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042706.jpg) 变换位置后受其它区域光的效果:[![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042707-300x173.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042705-300x196.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042705.jpg) 2.**模型自发光** 标准着色器上的自发光选项,也是可以让模型成为一个辅助烘焙光源。 [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042704-300x139.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042704.jpg) 3.注意事项: **①烘焙模式下的自发光物体也需要设置为静态。** ** ②Emission 后的值越大,自发光强度也就越大。** 4.手游场景中,为了美化场景,往往会点缀各种各样的灯光,灯光一旦多了,手游肯定会卡,所以99%的手游目前的场景还都是使用的“烘焙光照”模式。另外不单单是手游,在手机端运行的VR 项目,AR 项目,场景也是需要烘焙的。 很多项目为了体现场景的丰富性,往往会使用灯光探头组,来让这些烘焙过的灯光,对游戏角色产生环境光的影响。 5.在摆放灯光探头组的探头的时候,为了节约资源和性能优化,一般只会将角色能到达的位置,摆放探头,而不会将整个场景全部摆放。 在摆放灯光探头的时候,要注意密度,不要太高,也不要太低。在光源变大比较多,角色经常移动的地方,可以稍微密集一些,否则可以稍微松散一些。 区域光在反射探头作用下最后烘焙的效果: [![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042706-300x174.jpg)](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042706.jpg) 变换位置后受其它区域光的效果:[![](http://www.wjgbaby.com/wp-content/uploads/2018/04/18042707-300x173.jpg)