光照需求分析:
动态物体要使用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的参数