Unity实时GI与烘焙GI

在Unity2019.3.8中,当我们新建一个场景时,默认的灯光设置为:

自带的主平行光:Realtime

灯光面板:Baked GI -> Light Mode为ShadowMask(不是Distance ShadowMask)

新建物体的Contribute GI默认是关闭的

该默认设置有一个不足,即不能处理物体之间的间接光照,而解决间接光照最好的办法便是全局光照(GI),下面着重讲解灯光面板的GI设置,同时也会给出该不足的若干解决方法:

Realtime GI:虽然名字中含有Realtime,但这种设置同样也需要在运行前烘培好光照贴图,以保证运行时的流畅程度,只不过与Baked GI相比生成的光照贴图在运行时是可变的,这种变化会带来性能上的额外开销但要比不预计算光照贴图好得多

Baked GI:

  • Bake Indirect:只烘培间接光照,直接光以及阴影进行实时计算。运行时改变灯光,直接光照和阴影就会变,但间接光不变(如果间接光弱,视觉影响不大)。只减少间接光照的实时计算,适合对光照要求较高的场景,内存消耗小,当然性能的消耗也大
  • shadowmask:对静态物体直接光照产生的阴影也会被烘培到ShadowMask中,动态物体不受影响。运行时改变灯光只有间接光照和静态物体的阴影不受影响。内存中多了一份Shadowmask,比上一部少了静态物体阴影的计算,占用性能小了一点
  • 关于distance shadowmask:可以理解为shadow的一种改进版,Unity推荐使用这种设置,详见::https://www.bilibili.com/read/cv6569162
  • substrative:静态物体:直接光和间接光都烘焙到光照贴图中;动态物体:接收直接光,可以在静态物体上投射主方向光的阴影。运行时改变光照,静态物体直接光、间接光、阴影不受影响,动态物体的直接光、主灯光(平行光)投射的阴影受影响、其他灯光无阴影。性能消耗最小,应用广

在实际开发中,不建议Baked GI和Realtime GI同时开启(如果开启也常常是在有多种不同类型的光源共存同一场景时),开一种即可

灯光设置参数:

Unity实时GI与烘焙GI

Unity实时GI与烘焙GI

Unity实时GI与烘焙GI