1-烘培的代价是非常高的 2-烘培贴图的数量和体积非常的大,因为它是RGB通道的一些彩色图片,所以是无法改变的。 3-通过格式压缩,但压缩会出现质量下降的情况。贴图加载会占用大量的显存。
Light Probe是球形光照,提供比较简单的间接照明,可以为小物体提供间接光。
Light Probe Proxy Volume用来给这个小火车进行间接照明, 它上面的这些点可以吸取左侧Light Probe上离它最近的值,它会在几个球之间进行颜色的混合,混合出一个符合小火车形状的间接光的体积。尽管本身小火车没有进行光照计算,但它也拥有了间接光。
Light Probe
我们自动生成的一些UV可以使用Unity的功能,在物体上有UV Charting Control,进行动态合并。在合并完成后,我们进行预计算,看看合并上有没有问题。 合并UV的时候可能会出现扭曲现象,这种扭曲现象在烘焙Lightmap时是非常有问题的。
UV Charts等于6的情况下,如果Box分成左边是比较合理的,右边这么分在Enlighten的计算量最起码要增加3倍。
从左到右依次是Cluster Resolution是3米、1.2米、0.72米的效果。我们可以看出,只有在Cluster Resolution=0.72米的时候,在室内的效果基本才是合格的。
常见的物体Cluster Resolution 参考(每单元大小):
室内墙壁精度为0.5-1米 室内重要道具精度0.5米 室外建筑精度1-2米 室外地面精度2-4米 室外重要游戏道具精度1-2米
Progressive Baking
1
2
3
小火车做了一个Light Probe Proxy Volume,这样就可以控制接受间接光的情况。注意这种方式目前不支持移动平台 项目中的整体地面,都是使用的Blend Probes模式的混合,比较小或者不显眼的物体,并非游戏重要物体的都可以使用Blend Probes进行照明,我们需要勾选Static类型,它们一定在Static批次中,后面把它Lightmap Static去掉就可以了,去掉后就不会生成Lightmap,但是会接收Light Probe的影响。
如上图所示,在整个光照当中,我们加了一些面光源,这是为了提高场景的窗户透光的光亮。如果不加,就没法按窗户形成面光源,向内部进行照明的。 需要注意,面光源在移动平台上,如果不是HDRP的话,就只支持静态的,只支持烘培,不是烘培的模型它是不支持的。 下图是场景的光照贴图大概是这样的,比较符合白天的光照效果。
我们可以看看它的设置。 首先Procedural Skybox在这里加进来。在Enlighten当中,千万不要使用渐变和颜色进行烘焙,两者烘焙出来的东西会比较风格化,并不写实。有很多人选择用某个颜色烘渐变,但效果会非常不理想,所以一般选择Skybox进行烘焙,而Skybox一般使用Procedural Skybox。 烘焙完后,再替换为自己场景的风格化Skybox作为最终显示效果。Procedural Skybox是仅用于烘焙的,不是用于制作最终的Skybox效果。 我们再举一个简单的例子。如果要形成一个特别颓废和压抑的环境,我们可以将大气密度提到很高,然后将染色降一下,或者偏向一个色彩。 我们可以将整个曝光度调低,把大气密度调高,实现让人很压抑的环境,这种环境烘焙出来的Lightmap比较接近于比较邪恶的地方,从而获得更加压抑的光照效果。
还有一点,当Atmosphere Thickness提高了以后,它作为偏光的可照明区域会缩减。缩减的意思是:黑色区域基本上不贡献光线了,整个Skybox变为不是半球形了,变得没有原来的光照面积大,所以烘焙出来的图就不那么剔透了。
因为它的周围存在染色问题,导致它控制在偏红,偏压抑的环境,就能烘托出来。我们可以通过对一些染色以后,对光线的反映来调出适合的视觉效果。
我们不建议在室内的时候使用Light Probes进行照明,因为它的物体要求精度很高,遮挡关系全靠需要低频光进行影响,没法做出很多变化。
尤其是一些非常小的物体,如果想要表现出好的效果,一定要对Lightmap大小进行放大。例如:铅笔在Scale In Lightmap里要放大一倍,不然烘出来基本上没效果。但对于有的物体,我们要保证统一性,如果能保证统一性,有的地方会出现一些色斑。 在示例场景中,我们优化掉了一部分的东西,整个Lightmap的照明还可以,但是你会看到这些东西都浮起来了,靠屏幕空间的AO是控制不住的,效果会产生大量的损失。所以这样的东西只在室外有用,室内的话是不建议这么用。 Enlighten烘焙在示例场景中的效率,代价是非常大的,因为场景中的物体非常的多,它的UV Charts基本上没办法看到,非常碎,所以烘焙时间也非常长。 在小火车的场景中,使用Enlighten大概烘焙4分钟。在这个教室场景,因为物体非常多而杂,大概是小火车场景的5倍左右时间,大概20分钟。 使用Progressive烘培则很稳定,它只看场景有多大的精度,不管场景有多少物体,这就是Progressive和Enlighten之间的差异。