Unity的光照分为直接光照,间接光照,全局光照,环境光照。全局光照又分为实时全局光照与烘焙光照。
实时全局光照
用来预先计算反射与二次反射的一些条件,并存储这些数据,当运行时会把这些数据拿出一些来来运用到你的实时计算。这个过程可以减少运行时必须执行的照明计算数量,也一样可以实时反映照明的反射。
烘焙光照
当场景里有大量物体时,实时光照产生的阴影会对运行游戏产生很大的性能消耗。这时候我们可以把静止的物体使用烘焙技术使光线效果预渲染成光照贴图,再运用到物体上实现模拟光照效果,可以减少性能的损耗。意思是说当我们把游戏的物体选择的烘焙光照就不会实时计算它的光影效果。
开启烘焙光照
先在灯光的Inspector里把灯光的Mode改成Baked模式
再到Lighting窗口把灯光与物体的Mixed Lighting打开
关闭Realtime Lighting(实时全局光照)
然后把物体设置为静态的GI
设置为等他自动烘焙就可以了
灯光的Mixed模式
在这里可以设置Mixed模式,这个模式可以让静态物体的影子呈现静态模式不会随着静态物体的变换而变换,动态物体也可以受到这个光照的影响,当动态物体移动时这个光照还是会模拟实时光照。
当你选择了Mixed模式时就可以调节这三种Mixed的渲染方式
Subtractive模式:这个模式下性能消耗最小,但只支持一个主光源,如果项目比较大想对多个动态物体有影响的话不建议用这个模式,这个模式下性能是消耗最小的。下面是Subtractive模式下影子的数量
在这个模式下动态物体只受一个主光灯影响
Shadowmask模式在这个模式下性能消耗也比较小,因为影子是贴图所以在使用时无法保证动态物体在被静态物体遮挡住颜色会发生变化。
在遮挡时物体与未遮挡时颜色一样这显然不合理这里我们使用Distnce Shadowmask模式
在这里打开然后选择这个模式
选择完你会发现场景里的影子数量增加了并且物体在遮挡时与未遮挡时发生了一些区别
但这么多的影子数量对性能肯定就没有太大好处,这里我们可以调节在什么距离内才会有影子来进一步进行优化
把这个值调成50然后观察场景中的物体
我们发现当我们距离远的时候他不受遮挡物影响,近的时候他又受到了遮挡物的影响,这样我们就可以近一步的优化场景