Unity的烘焙GI注意事项

哔哩哔哩   2023-08-04 20:51:34

光照需求分析:

动态物体要使用realtime或者mixed模式的灯光提供直接光和实时阴影,间接光由light probe组件提供。


(资料图)

静态物体需要采用baked模式的灯光进行烘焙。

使用哪种烘焙模式:

烘焙GI提供三种不同的模式,要知道各种模式的差异来判断自己需要哪种模式。

Baked Indirect:

动态物体接受:受实时光、可以用lightprobe、接受动态物体和静态物体的实时阴影。

静态物体接受:受实时光、受间接光烘焙、动态和静态物体的实时阴影

Subtractive:

动态物体接受:受实时光、可以用lightprobe、接受主方向光照射动态物体的实时阴影和静态对象的实时阴影。

静态物体接受:只接收烘焙光、静态物体的烘焙阴影、主方向光照射动态物体的实时阴影。

Shdowmask:

动态物体接受:受实时光、可以用lightprobe、接受动态物体的实时阴影和静态对象的烘焙阴影。

静态物体接受:受实时光、受间接光烘焙、动态的实时阴影和静态的烘焙阴影

烘焙前的注意事项:

场景的结构要清晰,通过看结构树就能分得清哪些物体是参与烘焙,哪些物体是动态的,方便后期进行迭代和维护。

常见烘焙问题:

光照信息错乱:

一般是模型的2u引起的,要检查2u是否有重叠,或者使用unity自带的generate lightmap检查模型。

还有可能是单面的模型引起的漏光,有双面显示的shader,先勾选双面显示进行测试,没有的就要在dcc软件中手动制作双面进行测试。

光照信息丢失:

首先检查物体是否受烘焙,检查是否为静态物体,culling mask有没有排除该物体的layer。

然后切换为默认材质进行测试,排查是否是shader原故引起。

常见报错:

overlapping 警告

在烘焙场景时经常会出现overlapping提示,一般查看视觉效果没问题的话就可以忽略,这个报错是因为2u的间距太近引起的,可能会在烘焙后导致模型漏光。

解决办法:

在margin method设置calulate,调整合适的min light resolution和min object scale

在margin method设置manual,调整pack margin的参数