Unity的全局光照(GI)
什么是GI:
全局光照(global illumination)是一种对直接光和间接光进行计算来达到更逼真的光照效果的技术,可以提供实时光和烘焙光的间接照明,让场景更加真实。
在unity中,有两种全局光照,分别是Realtime GI和Baked GI。

Realtime GI:对静态物体进行光线反弹部分数据的预计算,在运行时可以支持实时光线反弹。
弊端:由于计算实时GI会有一定的延迟,所有不适合快速变化的灯光。适合昼夜变化和明暗缓慢变化的光源。
Baked GI:烘焙全局光照,经过计算后把光照信息存储在光照贴图(lightmap)上。
好处:经过烘焙后的显示效果好、性能消耗低,可以在移动设备上流畅的运行。
弊端:经过烘焙后的光源都是固定的,不能有变化。
在游戏的场景制作中一般都会启用Baked GI来获得更好的光照效果,让场景中的物件产生对光照的相互影响,获得更符合现实的光照效果。

使用烘焙GI的整体流程:
1.设置场景正确的环境光照
环境光照是场景的基础整体光照,会对后续所有的灯光产生影响,所以在设置环境光时要充分考虑场景要表现的氛围,才能正确的选择环境光。
2.开启烘焙GI
要先勾选lighting面板中的GI开关,场景中的灯光才能真正的切换到mixed和baked模式。

3.灯光参数
场景中的灯光要设置为mixed或者baked才能进行正确的烘焙。

4.选择物体是否参与GI
场景中只有勾选了contribute GI的物体才会参与烘焙,开始烘焙前要勾选static的contribute GI,早期的unity中这个参数直接就叫做lightmap static


5.调节GI参数
根据项目需要正确的调整烘焙参数,一般项目中会提供规范,将这些参数统一在一个范围之中,特殊需求的场景除外。

6.执行烘焙
场景默认时勾选auto generate的,每次对场景进行改动都会自动开始烘焙,如果不想要的话就要主动去掉这个复选框,用右边的generate lighting按钮自行烘焙。

完成烘焙之后,场景中的灯光关闭或者删掉都不用影响现有的场景光照效果,因为光照信息都已经被存储在光照贴图上了。