教你Unity灯光烘焙2
系列目录:[*]Lute Li:教你Unity灯光烘焙1 - 灯光系统梗概
[*]Lute Li:教你Unity灯光烘焙2 - 如何选择烘焙模式
这次来说一说,烘焙模式有哪些,以及如何选择。
我将按照unity烘焙的发展来讲述,这样更容易理解。
|光照贴图的诞生
在早期Unity中,所有模型的间接光,只能靠天光提供。如果是室内环境的灰墙房间,依然会因为天光照得发亮。
光照贴图的诞生,实现了静态模型之间的间接光效果。
两个小球是实时,房子模型烘焙
现阶段,模型就像分成了Baked和Realtime两个Layer,互相不能影响对方。
特点:
[*]小球没有房子的间接光
[*]房子阴影无法投射到小球上
[*]房子没有实时高光
在那个蛮荒年代,甚至于有人烘焙max的灯光贴图,强行贴回到Unity模型上。(瞎搞)
|Subtractive和光照探头
“不要求精度,我只想把原本错误效果修正到勉强正确。”
Subtractive是第一个混合模式,相比之前,多了三个东西:
1.光照探头记录阴影
每个光照探头会记录它自己是否在阴影内,如果在则小球不会被直接光照亮。
但这也有个问题,光照探头的阴影不精准,房子没法投影到小球上。
2.光照探头记录间接光
3.小球实时投影到地面(只能有一个平行光)
平行光下的小球,可以投影到地面上,并且可以自定义阴影的颜色。但阴影不能正确混合。
特点:
[*]房子依然无高光
[*]同等Lightmap分辨率下,计算量是三种Mixed灯光里最低的
[*]只能投射一个平行光的阴影,能改阴影颜色,但阴影不能正确混合
[*]效果不真实,但是很适合风格化场景
[*]Lightmap分辨率精度不能低
详细可看:Lighting Mode:Subtractive - Unity 手册
|Baked Indirect
“我只是想要在全实时的基础效果上,加入间接光。”因这个想法诞生了Baked Indirect模式
这个模式如字面意思,只会烘焙间接光,光照贴图里只有天光的蓝色和墙面的红色。
所有模型的亮部和阴影还是实时计算。(所以柱子有高光)
Baked Indirect光照探头的间接光效果和Subtractive一样。
特点:
[*]原本该有的渲染计算一个没少,还要多计算一张Lightmap和光照探头。
[*]Lightmap分辨率可以很小(才64*64,Subtractive用了512*512)
[*]实时高光,实时阴影
详细可看:Lighting Mode:Baked Indirect - Unity 手册
|Distance Shadowmask
Baked Indirect看似美好,其实有一个问题。
当Shadow Distance很小,阴影到远处建筑就没了。
[*]左:Shadow Distance能覆盖整个场景
[*]右:Shadow Distance无法覆盖整个场景
所以就有了Shadowmask这个模式。(Distance Shadowmask)
在Baked Indirect的基础上, 多烘焙了一张Shadowmask贴图。
在超出Shadow Distance后,模型就会从实时阴影切换到贴图阴影。
Shadowmask的每个通道对应一盏灯光,也就是一张图最多可以存四个灯光。(这也是为什么偏红)
烘焙间接光只需要低精度 + 远处的阴影只需要低精度
这两个需求正好一致,所以低分辨率Lightmap也能保证好效果。
特点:
[*]远处烘焙模型也能有阴影。
[*]远处实时物体的阴影走Subtractive那套。
[*]低分辨率Lightmap即可保证好效果。
[*]有实时高光
[*]多了一张Shadowmask图,一张图能存四盏灯的影子
详细可看:Lighting Mode:Shadowmask - Unity 手册
|没有Distance的Shadowmask
Shadowmask默认是Distance Shadowmask,可以在Quality中切换成全局Shadowmask模式。
效果就是,Shadow Distance等于0时候的Distance Shadowmask。
烘焙物体影子全走Shadowmask。
特点:
[*]有实时的高光与亮面
[*]房子无法投影小球(和Subtractive一样)
[*]Lightmap分辨率要求高(和Subtractive一样)
[*]实时阴影和烘焙阴影能正确混合。
[*]说实话完全不知道这个模式的使用场景在哪。
<hr/> 下面是我的artstation地址:
当然你也能看看我原来写的文章
如需转载请与作者联系并标注作者名字和原始网址 可爱的小狗窝 猛狗必备粉色窝 你不对劲[惊喜] [赞同] 来了 来了 欢迎回来呀[爱] [思考] 大佬大佬 不敢不敢
页:
[1]
2