mixed模式下烘焙shadowmask记录的数据
构建烘焙场景:
项目中只有一个平行光,烘焙之后:
可以看到在只有一个平行光照射场景的情况下,这个黑色区域是阴影的区域。
删除上一步的烘焙数据之后,调整一下光源方向,然后重新烘焙:
可见我们的猜测是正确的。
然后加入另外一个灯光:
调整两个灯光的强度,使得有两个可见的阴影,然后进行烘焙:
左边是第一个灯打开的烘焙结果,中间是第二个灯烘焙的结果,右边是第三个灯烘焙的结果:
假如红色的灯光是在第一个通道——r通道
第二个灯用第二个通道记录——g通道
那么凡是第一个灯能看到的区域用(1,0,0,0)表示
凡是第二个灯能看到的区域用(0,1,0,0)表示
那么现在应该是这个样子:
两个一叠加:
红色区域:只有第一个灯能看到的区域
黄色区域:两个灯都能看到的区域
绿色区域:只有第二个灯能看到的区域
黑色区域:两个灯都看不到的区域
在增加多个灯,也是类似的规律。
增加多个物体,烘焙:
选择一个物体查看器shadowmask:
黄色高亮的是,这个物体的uv展开图,以及对应的shadowmask。
ok,到此我们再次总结下,其实shadowmask记录就是每个灯光能看到的可见区域。
每个灯光有一个编号,比如0号灯用r通道,1号灯用g通道。
这样rgba四个通道,最多记录四个灯的照射情况。多余四个灯光,unity官网说了,会将多余的灯用baked模式处理。详见:
https://docs.unity3d.com/Manual/LightMode-Mixed-Shadowmask.html