Skip to main content

什么是光照贴图?

如同一个模型可能包含的基本反射/颜色贴图和法线贴图等等贴图,光照贴图同样是一个作用于模型表面的贴图。使用 Bakery 或其他的工具,我们能够使用比实际场景中更高质量的照明算法来预先计算照明,然后将其保存到贴图中。

这意味着使用光照贴图的模型需要 单独一组 UV 以储存光照贴图。这些 UV 可以通过在模型文件中启用 "Generate Lightmap UVs(生成光贴图 UV)"功能在 Unity 中自动生成,也可以在建模工具中手动创建第二个 UV 通道。Blender 可以获取现有的 UV 并重新拆包作为光照贴图 UV,使得这个过程更加简单。

Unity 为光照贴图提供了三个选项以供 Bakery 使用。

间接烘焙(Baked Indirect) 

间接烘焙(Baked Indirect) 将非直接的光照烘焙入光照贴图中,允许你选择是要 将主光源包括在内 还是 单独添加在顶部。这意味着你可以在场景中使用烘焙的光照贴图,同时仍能包含带有动态阴影的实时日光或月光等光源。这样做的性能开销相当高,因为主光源仍需要为每个物体渲染实时阴影,但视觉效果也是最好的。

阴影遮罩(Shadowmasks)

阴影遮罩(Shadowmasks) 将烘焙包含环境光(ambient light)的光照贴图,还会烘焙包含方向光阴影(directional light shadow)的光照贴图。这允许光源获得部分实时光源的优点,例如适当的镜面高光(specular highlights),同时避开场景烘焙部分的实时阴影的性能开销。阴影遮罩(Shadowmasks)可以与动态阴影(realtime shadows)相结合,看起来漂亮而逼真。或者,您也可以使用遮蔽探针(Occlusion Probes)将光源设置为完全烘焙,在这种情况下,Unity 还会在每个光线探针中烘焙一个值,指定其是否被主方向光照射,从而使其看起来基本相同,但没有玩家阴影。

削减式(Subtractive)

削减式(Subtractive) 模式将烘焙包含场景中所有光源的光照贴图,但如玩家之类的动态对象将仍然投射阴影。这些阴影将在与阴影颜色关联的光照贴图上裁切。这样做优化很好,但是有些许难看。