上一篇我们了解了,直接光照、间接光照和全局光照,也知道全局光照会带来的计算量的问题。这一篇我们就要来看看Unity提供的解决方法。
Unity的全局光照模式
我们可以首选打开Uinty的照明设置面板,Window->rendering->lighting setting,这个面板是Unity全局照明(GI)功能的主要控制面板。通过Lighting窗口
,你可以调整GI进程中的各个方面,根据需要来自定义场景或优化质量,性能和存储空间。 这个窗口还包括环境光,雾效、光晕等设置。这里我们先只关注红色框内的部分。
Unity提供了两种全局光照模式,实时全局光照和烘焙全局光照。看到这儿的小伙伴可能要骂人了,不是说计算量大,不能实时计算的吗?其实这里的实时只是部分实时,后面会详细讲到。
物体的动静和light组件的模式
在讲两种全局光照模式之间,我们先讲一下物体的动静和light组件的模式,这二者是和光照模式相互配合的。
在Unity中,物体是可以区分静态和动态的,你需要明确指出哪些物体是静止的,并且在游戏中永远不会移动、旋转和缩放。
注意:灯光也是要区分动态和静态的,因为灯光在Unity中可能会发生移动,旋转等
混合光照——烘焙全局光照(Baked Gloabl lllumination)
控制“混合”和“烘焙”光照是否使用烘焙全局照明。如果启用,“混合”光照将使用指定的“照明模式”进行烘焙,“烘焙”光照将完全烘焙,且在运行时无法调整。
1、这里说的“混合”和“烘焙”光照就是上面说的light组件的mixed和baked模式
2、如果light组件是baked模式,则该组件产生的直接光照、间接光照和阴影都烘焙成全局光照贴图,运行时是无法调整的。这就要求光照要是静态的,光照下的物体也要是静态的。