美文网首页
谈光照图烘焙技巧LightMap烘焙技巧

谈光照图烘焙技巧LightMap烘焙技巧

作者: 元宇宙云课堂 | 来源:发表于2017-06-13 22:01 被阅读512次

Unity LightMap烘焙技巧烘焙技巧

科普名词解释:全局照明(GI):是指除了直接光之外包括天空,物件之间间接光照的总和。环境光遮蔽(AO):是指间接光在物件间相互遮挡反射不充分导致的微弱阴影。通常在直接光照暗部的接缝处才会比较明显。天光:从头顶来的天空颜色造成的间接照明,特别是在晴朗的天气。LightMap:光照贴图HDR:颜色高动态区间,指颜色亮度可以超过1,移动平台暂且不支持。间接照明(间接反射):指光源照亮A物体,A物体变亮以后充当间接光源对近距离内B物体有照亮的作用。这种现象只有当物体B在直接光照(比如阳光)的阴影里才会明显。

足够多的明暗对比
适当打平灯光以增加阴影面积(暗部更多更容易做效果)

img

适当增大模型增加阴影面积(暗部更多更容易做效果)

img

通过只投射不接收来增加假阴影(作假)(不接受投影是因为看不见所以可以节省这种物体的渲染和它占用的litmap面积)

img

模拟全局光照
足够充分暗部照明(暗部会有一种明快的感觉,用美术语言说就是暗部很“通透”)

img
img

天光的使用:理论上越晴朗的天气阴影暗部越偏蓝(这就是全局照明的一种,暗部要有光,用美术语言说就是暗部很“通透”)(哪天北京晴空万里的时候去大楼的阴影里看看是不是有蓝色,为了对比饱和度的覆盖问题,可以拿一张白纸)

img
间接反射夸张:比如守望先锋花村的樱花树下会有很强烈的蓝紫色,实际上是模拟粉红的樱花与天光蓝色的叠加造成的视觉,不过暴雪的美术有更加夸张的表达。(实现方法实际是在暗部增加与区域环境颜色相似的点光,实时GI现在效率跟不上,另外也不可能这么强。)
小幅夸张 img

更夸张的做法:现实世界中不会有这么强烈的间接反射,就像叶子把光间接反射出来了一样,守望先锋就是例子

img

其实以上技巧都是借鉴自守望先锋这是一个人的分析,只要有心去找,仔细去看,去思考,网上有很多文章有可以借鉴的地方(因为实时GI还开销太大,暴雪真是能通过技巧把能用的东西用到最好)

img 原文链接

还有一个对环境光源的理解

img 原文链接

祭上守望先锋的场景,很夸张的暗部间接光照,实际上是通过暗部打烘焙点光来实现的。更多细节请参考我的另外一篇文章

img

AO的使用
AO能更真实的模拟现实世界,能使暗部有更明显的立体感,用美术的话说就是暗部足够“实”,“不飘”基础知识请参考这篇文章,这里讲了什么是AO,什么是间接反射等
暗部的接缝处AO效果最明显

img img

LightMap面积的优化
LightMap面积(精度)说明:(一个格子就是一个像素点,也就是占用在lightmap上面的面积)

img
通过Scale In LightMap这个参数可以单独调整单个物体的精度 img

更合理的分配LightMap面积(想要好效果又要节省lightmap面积,就是要研究,并总结经验,没有捷径)只投射不接受的物件Scale In Lightmap填0就行

地面 > 物件,重要物件 > 一般物件, 视觉中心 > 边远地区,大物件 > 小物件 img

全部(或者几乎全部)在明处或者全部在暗处的可以用最低分辨率烘焙(比如当前光线下的这个椅子和不管影子多么正都是在暗处的这面墙壁,这种情况下,这两个lightmap精度可以填0.01),需要注意的是必须参加烘焙只是精度可以很低(因为纯白或者纯黑被压缩大小是不会损失精度的)

img

地面以下,地图的侧面,或者根本看不见的东西,烘焙占用面积请控制到最小(最惨的情况请参考下面说的浪费)

避免完全没有必要的浪费像这种完全在别的物体以下,还参加烘焙的完全没有必要,而且浪费很大

img

树叶花草等透贴类似的推荐只投射,不接受,而且接受烘焙阴影效果不见得好,会很“脏”

img

压缩的效果优化
通过我烘焙的经验,以kasaierxueyuannew场景为例,发现烘焙10-12张1024压缩到512,比直接烘焙2-3张1024的贴图来的精度和效果都更好10张512 = 2.5张1024,而以之前的烘焙策略烘焙3-4张1024效果没有我这个好
此外通过合理分配lightmap精度,能节省2-3张lightmap,没有仔细分配之前,保证效果的情况下能烘焙14张左右,现在这版只使用了11张,如果还细抠还能省1张甚至更多

img

从1024压缩到512肯定会损失精度,但是通过仔细的分配lightmap精度能使这种损失达到最小方法一:地面最有用,所以怎么省都不要吝啬地面的精度,地面不管接受多少阴影,所占用的lightmap面积是一样的,所以多打点阴影(不增加消耗,还可以做效果,何乐而不为)
方法二:纯背光纯亮光区域可以减少lightmap精度,因为压缩不影响(就像纯黑纯白的贴图压缩大小没有损失一样),而复杂的结构并且能同时受到阳光和阴影的影响,则也不需要节省精度,因为如果本来精度就不高,则压缩更惨
方法三:压缩大小比压缩格式带来的损失小,如果压缩格式影响巨大,可以不压缩格式,而在其他地方想想办法怎么省(省的办法参考上面)。所以推荐烘焙高质量的光照图来压大小
方法四(重要):尽量使用大阴影,在不压缩情况下本来就很小很虚的阴影,被压缩了只会更惨,优化方法参考以上
方法五:不推荐使用复杂的结构,酌情使用,在压缩的时候很容易损失过大

技巧及问题
发现阴影比较虚,不实检查是否间接光照反弹次数过大(可以理解成有过大的衍射效果)
增加被投影物体的大小(比如放大花盆)(很显然)
增加投影至物体所占lightmap面积(比如树叶投影到地面比较虚,则提高地面的精度)

效果不好或者黑点、漏光过多检查2u是否打开
检查顶点分布是否有异常,uv分布是否均匀或过少
如果都没问题而且这个物件很重要,则增加精度
自定义2u(高级,不推荐使用)

过小物体效果太差如果确实过小,先看能不能放大,或者说这么小的东西有没有存在的必要或者是否可替代(很显然)
如果确实需要,可以不参加litmap烘焙,而直接去diffuse贴图上花盆贴图的底部蹭两笔黑的

这个花盆之前参加烘焙会有很大的漏光和黑点,其实不需要参加烘焙,而且效果比烘焙更好,还能节省lightmap img

个人经验
暗部补光,感觉上并不是光越多越好,最好灯光颜色来表达周围环境的间接光照,过多颜色的灯光会让人觉得没有重点和乱
点光通过减小光照强度增加照明范围能得到更好的环境间接光的效果,还能防止有比较突兀的亮斑
个人倾向于用天空材质球来代替全局环境光来烘焙,如果是晴朗天气,用默认纯蓝的天空即可
(新)白模的情况下感觉lightmap很舒服而且很干净,而最终效果图的lightmap效果没有那么明朗。所以猜测为diffuse贴图的饱和度问题,因此推荐使用较低饱和度的颜色,否则lightmap的颜色很容易被盖掉(不保证正确,希望美术同学尝试)
(新)确定烘焙精度(分辨率)的技巧:可以先确定好地面保证效果情况下的最低精度,因为地面是最重要并且理论上精度应该是最高的,然后其他重要的,次要的物件相应缩小就行。
(新)从上面可以看出,阴影面积很重要,于是在设计之时,说服策划,从设计的角度避免太过于空旷没有投影的地面,因为在阳光下很难做效果,而作假投影的方法有一定的局限性。

跨平台的问题
因为烘焙Lightmap用的exr,也就是HDR颜色编码,而现在手机平台不支持HDR编码,导致在手机平台和PC平台的解码方式不一样,所以不能使用过强的光来烘焙光照图,否则会造成android与pc差异巨大,因此不推荐使用光照强度超过3的灯光来渲染。

(新)美术反应android平台烘不亮的问题:主要原因是材质求颜色太黑了,原理是这样,如果材质求本来亮度是在0.2,在pc上因为支持RGBM编码,最终颜色 = 0.2 * 颜色贴图的rgb * lightmap的rgb * lightmap的a(也就是系数)

如果材质求本来很黑,要靠很亮的lightmap才能达到照亮的效果,则会导致lightmap的系数会特别大,比如7-10,但是在android平台上,lightmap的解码方式为
最终颜色 = 0.2 * 颜色贴图rgb * lightmap的rgb * 2(这个2是固定的,unity内置的解码)

所以就会造成android平台特别黑。所以如果要避免这个问题,就是要让材质求颜色亮一些,推荐把没有烘焙lightmap时候的颜色大体定在0.5-0.7左右的亮度,这样烘焙进退都可以,而且这样lightmap的系数不会特别夸张的大,这样在pc平台和android基本就能保持一致。 img 如果出现这种lightmap都发白的情况没有颜色了,就说明很有可能有很大的系数值,也更容易导致android比pc显示的更黑。前面是低材质颜色高灯光颜色,后者是高材质颜色,低灯光颜色,最后的效果没什么区别。 img (新)另外烘焙的光不要太靠近物体,因为越靠近光强太强,很容易爆掉。在太靠近的位置叠加光也会有相同的问题。比如这里丢失了黄色灯光的颜色就是因为过爆了,就会发白。 img

演示
可以从此处下载演示场景给一张全貌

img

题外的感悟
记得小时候没有报书法班完全靠兴趣来写毛笔字,起初都是用几块钱的毛笔来写,写不好总会怀疑是不是笔的问题,后来换了30,40的笔感觉会好一些但好的不多,后来看到我三外公用钝头的毛笔写出来的字都很好看(虽然达不到他最高水平,但是笔意还在),后来跌跌撞撞对笔锋,行笔有了更好的理解,发现重新拿原来最开始的几块钱的毛笔都写的不错。
还有比如我高中那会开始玩跑跑卡丁车的时候,刚上来就买了一个好几十的高级车玩,但是在游戏中被一些老手用板车(自带的新手车)碾压(因为根本不会过弯道,要不撞墙,要不减速过多,要不走的不是最佳的漂移路线)。所以好不好用会不会用完全是两回事。不要轻易的因为后者而怪前者。这种例子不胜枚举。世界上的大道理基本都是相通的。多思考,多琢磨,这是一种品质。

相关文章

网友评论

      本文标题:谈光照图烘焙技巧LightMap烘焙技巧

      本文链接:https://www.haomeiwen.com/subject/nyejqxtx.html