unity5.6是今年发布,作为5.x的最后一个版本,有很多烘焙优势,在此总结一些作为5.x系列完结的笔记
这个版本在烘焙上的特点就是增加了渐进光照贴图(Progressive Lightmapper),这个功能可以说极大地改善场景光照烘焙的工作流程,可以加快场景烘焙效率,再也不怕烘焙一晚上发现有灯光有问题了
当然它不是用来替代Enlighten的,很多地方还是略有不同的,但是感觉这个速度更快。虽然有的新增的灯光混合模式不受支持,但是它在模型迭代中能发挥更大的优势。
Progressive 光照优势就是能很快看到一个区域的光照效果,而且在高参数下烘焙非常快,可以随时停止,效果依然保留,这个功能好多了
缺点也挺多的,比如只支持两个模式(看下面,有些效果会缺失),参数高的时候内存占用非常大,如果内存小的机器很容易崩溃
enlighten比较还是比较传统,内存消耗不多,比较不容易崩溃,支持所有模式,所以需要高端效果的时候还是这种支持的多
但是缺点是不到渲染结束看不到效果,相同参数下烘焙时间感觉长了不只好几倍
下面是两个白模渲染效果对比
可以看到其实渐进式的效果范围ao效果范围更广更暗一些
关于新版本还有4种光照模式,有些理解起来还都是挺纠结的
而且官方和其他教程解释得都比较抽象,所以下面以质量为主进行一些说明
表面上这些设置和mixed灯光有关,属于混合灯光方面的内容
lightmode具体可以看这里
https://docs.unity3d.com/Manual/LightModes.html
关于混合灯光四种模式区别具体看下面的
https://docs.unity3d.com/Manual/LightMode-Mixed.html
但这些与烘焙质量也有很大关系,我测试了以阴影质量为主列下面的表
下面讨论的项目是在bake light下,directional模式下
阴影质量
enlighten
灯光设置progressive
灯光设置
Baked Indirect
内存占用少,动态质量一般,消耗一般
mixed 近处硬 远处消失 动态投影 baked 软阴影
baked mixed 软阴影
Distance Shadowmask
内存占用高,动态质量高,消耗高
mixed 近处硬 远处软 动态投影 baked 软阴影
不支持 如果强行使用效果同上
Shadowmask
内存占用低,动态质量差,静态质量高,消耗低
mixed 软 静态物体无动态投影 baked 软阴影
不支持 如果强行使用效果同上
Subtractive
内存占用低,质量低,消耗低
mixed 软 静态物体无动态投影 baked 软阴影
baked mixed 软阴影
混合灯光模式:
说一下下面的模式主要针对的都是混合灯光也就是mixed方式,动态和静态虽然有的模式能相互投影但是影子依然会非常锐利,具体如何使用实时阴影取决于ShadowDistance的值和光照模式。
shadow map就是普通的即使阴影,就是比较锐利的阴影
有一个不可能,就是不能实时动态物体投下很软的阴影
性能消耗
大型,户外 标准,室内 室内,小型静态,手游 小型,手游
Distance Shadowmask > Baked Indirect > Shadowmask > Subtractive
下面是具体说明,官网内有更详细解释
我的主要是关注阴影质量
Baked Indirect mode
性能消耗一般,适合有动态光源物体的室内项目,中低端pc游戏或者高端移动端游戏
baked灯光会烘焙下所有静态物体并产生软阴影,baked灯光会穿透动态物体(动态物体不会被baked灯光照亮)
realtime和mixed灯光会在阴影距离内产生比较锐利的影子。距离外不投影忽视物体。
mixed和baked灯光能烘焙出静态物体的反射光
realtime lighting下 realtime灯光也能烘焙出静态物体的反射光
https://docs.unity3d.com/Manual/LightMode-Mixed-BakedIndirect.html
Distance Shadowmask (只支持enlighten)
性能消耗高,适合任何有大量动态物体的大场景游戏,适合高端pc
baked灯光会烘焙下所有静态物体并产生软阴影,baked灯光会穿透动态物体(动态物体不会被baked灯光照亮)
mixed灯光会烘焙下所有静态物体并在超出阴影距离的时候使用软阴影,不超出的时候使用实时硬阴影
realtime灯光会在阴影距离内产生比较锐利的影子。距离外不投影忽视物体。
mixed和baked灯光能烘焙出静态物体的反射光
realtime lighting下 realtime灯光也能烘焙出静态物体的反射光
烘焙的shadowmask上的颜色不是灯光颜色,而是静态光的颜色,只能有四盏灯,分为rgba
mixed灯光产生的阴影将被分离到新的烘焙贴图中,所以这个模式下mixed灯光颜色和位置可以在烘焙后改,还是软阴影
https://docs.unity3d.com/Manual/LightMode-Mixed-DistanceShadowmask.html
Shadowmask (只支持enlighten)
性能消耗比较低,适合室内小型无多少动态物体的项目,适合中低端pc和移动端游戏
baked和mixed灯光会烘焙下所有静态物体并产生软阴影,baked和mixed灯光会穿透动态物体(动态物体不会被baked灯光照亮)
realtime灯光会在阴影距离内对动态物体产生比较锐利的影子。静态物体不会在动态灯光下产生投影,距离外不投影忽视物体。
mixed和baked灯光能烘焙出静态物体的反射光
realtime lighting下 realtime灯光也能烘焙出静态物体的反射光
烘焙的shadowmask上的颜色不是灯光颜色,而是静态光的颜色,只能有四盏灯,分为rgba
mixed灯光产生的阴影将被分离到新的烘焙贴图中,所以这个模式下mixed灯光颜色和位置可以在烘焙后改,还是软阴影
https://docs.unity3d.com/Manual/LightMode-Mixed-Shadowmask.html
Subtractive
性能消耗很低,适合小型无多少动态物体的项目,适合中低端pc和移动端游戏
baked和mixed灯光会烘焙下所有静态物体并产生软阴影,baked和mixed灯光会穿透动态物体(动态物体不会被baked灯光照亮)
realtime灯光会在阴影距离内对动态物体产生比较锐利的影子。静态物体不会在动态灯光下产生投影,距离外不投影忽视物体。
mixed和baked灯光能烘焙出静态物体的反射光
realtime lighting下 realtime灯光也能烘焙出静态物体的反射光
是以前的老模式,是用于低性能设备,光照被烘焙到贴图中。
https://docs.unity3d.com/Manual/LightMode-Mixed-Subtractive.html
基本材质烘焙的对比
反射状态final gather效果
关于Directional Specular
由于在前面的版本里就已经标记成将要废弃的选项,这个版本就没有了
但是以前用这个可以表现出高光细节(就是法线贴图下的高光效果),现在要怎么表现呢
这个就只能借助enlighten了,需要将光照模式改成Shadow Mask或者 Distance Shadow Mask,使用directional,而且光照也必须改成mixed模式
参考https://answer.uwa4d.com/question/5902db1da7fbeb4a58bf64a3/unity5.6%E7%89%88%E6%9C%AC%E4%B8%AD%E5%85%89%E7%85%A7%E9%A2%84%E6%B8%B2%E6%9F%93Directional-Mode%E9%80%89%E9%A1%B9%E4%B8%AD%E5%B0%91%E4%BA%86Directional-Specular%E9%80%89%E9%A1%B9
对后面期望当然是渲染最好能分层
比如现在还是烘焙无视layer设置,包括灯光的