卢鹏

场景美术:lightmap烘培功能更新补充教程


概述

 本文基于lightmap功能更新,作为《新版本场景编辑流程及引擎导入规范》的补充教程,lighmap新增功能能更好的帮助美术快速导出合理的lightmap分配方案,下文将详细介绍。

新旧lightmap烘培功能对比及介绍

1. 首先点击引擎菜单栏【lightmap 分块】按钮,跳出面板与旧版相比,在lightmap分块面板上还多了一个参数:light map prefix check,并且多出一个mesh面板。Light map prefix check 这个参数的意思是如果模型uv2在lightmap所占像素分辨率低于这个参数所设置的阈值,则会在mesh列表面板左侧显示出来,如图: 中括号里面表示的数值表示该模型uv2在lightmap上所占的像素分辨率,如chain_01这个物体uv2所占像素为45,低于50,所以在列表中显示出来,使得使用者能快速的修改mesh的uv2精度;而mesh列表右侧的部分则表示该模型uv2所占像素超过light map size值1024了(本例为空),因此该模型无法在提升精度,想要提升精度,解决方法有二:一是将light map size的值设置更大,另外一种方法则是将这个模型在3D软件中进行拆分,通常情况下一般采用第二种方法较为合理。
image
image

2. 点击导出后,同样会在awd所在目录会生成一个lightMapPreviewer的文件夹,以及一个meshLightMaps.dae文件和一个meshLightMaps.json文件。打开lightMapPreviewer文件夹,可以看到6张lightmap预览图,如图所示:我们发现lightmap总共有两张会填不满,之所以和以前不一样,是因为引擎把透明物体和不透明物体做了区分,以方便在3d软件中烘培光影,一般透明物体的lightmap放在前面,而不透明物体在放在后面,本例中前面四张为透明物体的lightmap,而后面两张是不透明物体。
image
3. 选择场景中模型模型,选择属性栏中LightMap选项卡,如图所示,与旧版相比,LightMap面板比以前多了两个参数:一个是size in light map,用来表示该模型uv2在lightmap贴图上所占像素分辨率大小;另一个是secend UV ,点击后面蓝色箭头,可以预览该模型UV2在贴图上的排布位置(如下图)。这两个参数也是帮助使用者能快速调整模型uv2精度。
image
image
4. 另外还在geometry上面增加了一个scale in light map 的参数(如下图),与mesh上面的scale in light map是乘法关系,不同的是,修改这个参数,会修改引用该geometry的所有mesh,因此可以批量用来批量修改mesh的uv2精度。比如我们在mesh的Light Map 选项卡上设置scale in light map值为0.5,而geometry上的scale in light map值为4,那么该mesh的uv分辨率缩放值就是 0.5*4=2倍。

3
5. 介绍完新增参数,我们可以稍微讲下如何得到合理的uv2分布结果,也就是所有贴图都被排满,浪费较少,在第二步骤中我们得到6张light map,其中有两张light map没有排满。首先我们选修改部分透明物体scale in light map值,主要是调小,从而把四张透明物体light map调整为三张,如图所示:
1

6. 然后修改不透明物体的scale in light map值,这里同样也是调小,这样可以使得最后面两张贴图合并为一张,到此参数调节完毕,我们可以得到如下四张light map分布图,基本没什么浪费,可以进入烘培环节了 (PS:实际上最终结果是反复调试 area units 和模型的scale in light map参数确定的,并非一步到位,需要耐心把贴图撑满不浪费,原则上一些小物件或者远景的scale in light map值可以小一些,而一些角色活动范围和需要清晰投影的模型则需要把scale in light map值设置大一些)
2

PS:

① 在分配lightmap注意要分透明物体和不透名物体两部分调节,反复调整参数,使得lightmap空间尽可能合理的被完全利用到。
② 该教程是做为《新版本场景编辑流程及引擎导入规范》的补充教程。如果有疑问或者错误不足之处,请和TA组联系!欢迎交流!