Unity3d 2019室内光照贴图lightmap快速烘焙(转载)
Unity3d 2019室内光照贴图lightmap快速烘焙(转载)
转载一篇觉得挺好的文章,以防丢失!链接: 原作者:
以一个小客厅为例,这个例子的3D场景如下图所示:
拆分好的UV如下图所示
导入Unity3d后的场景情况如下图所示:
这个场景比较简单,一个窗户、一个沙发、一个茶几、一个书柜、两个落地灯、一个墙面装饰、还有一个挂画、茶几上一个杯子、两盆绿植,这里我们设想将场景烘焙成阴天的白昼气氛,也就是没有直射太阳光,室外光线完全是大气折射的太阳光,所以我们确定这个场景的主光源为从窗户投射的光线,可以使用Unity3d的面光源置于窗户附近,但我们这里选用Unity3d的材质灯光,也就是将某个模型的材质勾选“自发光”,这个模型就成了灯光了。选中窗户玻璃,勾选其材质中的自发光(Emission),将自发光强度设为1.5,发光颜色设为白色,如下图所示:
因为这个场景不可能有运动物体,光线也不会变化,所以选用静态灯光下的静态物体的方式烘焙场景,所以将自发光材质的Global Illumination(全局光照)设为Baked,勾选光照面板中的“Baked Global Illumination”,然后烘焙,得到如下图所示的结果(烘焙用时5分钟):
从上图可见,场景太暗,但明暗关系已经有了,如果反复烘焙,太浪费时间,我们设想通过photoshop来调色,需要说明的是,这里所说的调色不是简单的图片调色,而是对整个场景调色。如下图所示,将一个特殊的色带文件与相机关联起来,对这个文件调整,就会调整相机中的场景,这样我们将这个文件(png图片)用ps打开,然后截取一张相机视图的图片,按照图片调色的方法,对截取的图片调色,然后将图片调整的参数应用于那个色带文件,保存色带文件后,Unity3d的场景就回作相应的调整,关系就是这样。
下面我们就来调色,首先抓取相机视图的图片,然后在ps中打开,同时也将刚所说的色带文件也用ps打开,如下图:
首先调一下截取的相机视图图片的亮度和对比度,亮度88,对比度-50,如下图所示:
然后对色带也做这样的调整,如下图所示:
然后保存色带文件,Unity的相机视图就会作相应的调整,调整后如下图所示:
原理大家都明白了吧,这样就是以用ps灵活地为Unity3d场景调色了,只要Unity3d烘焙出场景的明暗关系,剩下的就交给ps了,这样可以节省大量反复测试烘焙的时间。按照上面的方法对相机视图进行色相饱和度、色彩平衡等调整后,相机视图的场景如下:
好了,场景调色就到这里。
木地板应该有反射,所以我们需要引用Unity3d的“Reflection Probe(反射探测器)”,在层级面板空白处右键单击,在弹出的菜单中选择light下的“Reflection Probe”命令,场景中会出现一个四面体线框,如下图所示,在反射探测器的检视面板中按下节点命令,四面体的四个面上会出现黄色下把手,拖动可以调节探测器的大小,按下探测器检视面板中的移动按钮,可以调整探测器的位置,用这两个命令配合,将探测器调至和房间一样大,或者说让探测器完全包络这个房间,烘焙的时候,会将整个房间烘焙成一个比较小的全景图贴在探测器上,供具有反射的材质映射来实现真实反射。这里说明一下,当场景比较复杂时,可以用多个反射探测器拼合来满足场景的外形,场景中不需要反射的地方,就不需要布置反射探测器了。
反射探测器布置好后,需要重新烘焙,反射数据是通过烘焙获得的。如果熟悉了,烘焙之前就布置好反射探测器,免得重复烘焙。烘焙之后结果如下
上图反射效果不太好,下面我们为木地板加一个实时反射,效果如下:
现在我们将玻璃的材质灯光关闭,用平行光来模拟阳光,重新烘焙(用时6分钟左右)并开启反射后效果如下:
在这个例子中引入了ps的后处理调色,以避免为达到好的色调和颜色及明暗对比反复烘焙浪费很多时间,好了,这个例子就讨论到这,更多Vray级Unity3d的烘焙,请阅读原作者博客。