一、在Unity2019.4中使用烘焙的流程
1、模型导入 模型导入的时候需要勾选生成Lightingmap UVs,因为烘焙之后产生的贴图需要在第二套uv上进行采样,如果建模的时候手动分配的第二套uv则导入的时候就不需要勾选自动生成Lightingmap了。
2、场景构建 把模型放入场景,把场景中的静态物体放在同一个节点下面,然后在勾选静态。
3、添加光源 添加主光源和辅助光源并进行灯光参数(类型、强度、阴影、烘焙模式)设置,设为Baked或者mixed模式的灯光才会参与烘焙。
4、添加光照探头 根据场景光源的分布合理布置探头的位置和数量。
5、添加反射探头 根据需要的反射要求可能需要添加多个。每个光滑物体上都可以单独再添加一个反射探头。
6、设置烘焙参数 前期先设置的质量低一些,用来前期查看效果,最终烘焙的时候再把质量调高。
7、添加后处理 使用Buildin渲染管线需要从package manager中添加post processing的包,如果使用的时URP或者HDRP,则自带后处理功能(需要在Camera组件中勾选以开启后处理效果,在场景中右键菜单中选择Global Volume)。
8、烘焙后的场景 素材asset store免费资源 Pack Gesta Furniture #1
二、场景烘焙技巧
1、场景大多数情况下需要进行多次烘焙,需要调整灯光参数、场景物体等数据,所以在前期烘焙时先把烘焙质量调低一些,以减少烘焙用的时间,最终烘焙时再把质量调高。
2、在场景窗口中可以把渲染模式修改成Baked Lightingmap来查看烘焙的阴影。
3、Unity的烘焙阴影颜色跟灯光颜色有关,间接光不会反射物体的颜色,所以使用白模就可以开始烘焙了。如果觉得这样不够真实的话可以为场景中的主物体的材质勾选上Emission,让物体的颜色参与烘焙。
4、优化场景物体模型面数。
5、优化场景物体数量,比如一些角落里的小物体可以不让他参与烘焙。
6、有条件的情况下模型手动分配第二套uv,把容易观察到的地方uv密集一些,不容易观察的位置uv分配的稀疏一些。
7、场景中物体避免交叉,即两个物体出现重合。
8、室内烘焙时在窗户位置添加面光源。
9、使用GPU烘焙可以有效减少烘焙时间。
三、相关知识点
1、Lighting 窗口中的 Lighting Mode 属性的效果。
在 Lighting 窗口中选择的光照模式决定了当前场景中所有混合光源的行为。可用的模式有:
- Baked Indirect 模式将实时直接光照与烘焙间接光照结合在一起,提供实时阴影。这种光照模式提供逼真的光照和合理的阴影保真度,适用于中档硬件。
- Shadowmask 模式将实时直接光照与烘焙间接光照结合在一起,为远处的游戏对象启用烘焙阴影,并将烘焙阴影与实时阴影自动融合。这是最真实但也是最耗费资源的光照模式。您可以使用质量设置 (Quality Settings) 来配置其性能和视觉保真度。这种光照模式适用于高端或中档硬件。
- Subtractive 模式提供烘焙的直射和间接光照,仅针对一个方向光渲染直接实时阴影。这种光照模式不能提供特别逼真的光照效果,适合于风格化的艺术效果或低端硬件。
四、参考资料
unity手册:https://docs.unity.cn/cn/2019.4/Manual/Lightmappers.html
光照模式:https://docs.unity.cn/cn/2019.4/Manual/lighting-mode.html
知乎Unity3d场景快速烘焙:https://zhuanlan.zhihu.com/p/78706246