在unity场景,使用直线光(Directional Light)烘焙光影的过程当中,有时会遇到场景墙壁漏光的情况。我们可以通过在场景外部新建Cube的方式来遮挡光线,达到一个比较好的烘焙效果。但是,我们不想让Cube一起被烘焙,因为这样会导致烘焙贴图变大,浪费内存。
这里分享一个工作中使用到的方案,作为自己的工作记录和梳理。本人unity目前还在摸索阶段,希望可以帮到和我一样的同学,如果分享内容有错误或者可以改进的地方,烦请大家为我指出,一起进步。
---------------------下面是正文---------------------
如何在unity场景内创建直线光(新建场景内一般会自带一个)
在“Hierarchy”栏中右键,Light→Directional Light 创建直线光。
ps:相关详细参数,如光照强度、光源颜色、光照作用物体等信息,可以在下图“Inspector”内进行调整
如何在nity场景内新建Cube
在“Hierarchy”栏中右键,3D Object→Cube 创建。(如图还有其他很多3D图形可选)
设置Cube“仅烘焙阴影”
选择创建出的Cube,在“Inspector”栏找到Cast Shadows,选择Shadows Only。这样再烘焙就不会把用来挡光的Cube烘焙进去啦~
【正文结束】
-----
与题目无关的题外话,一般我在烘焙完毕后会关掉用来挡光的Cube。单纯感觉这样工程会干净一点,不清楚是为什么,所以笔者稍微做了下测试,数据如图:
↑ Cast Shadows为OFF时,Batches:为15
↑ Cast Shadows为Shadows Only时,Batches:为14
↑ Cube关闭时,Batches:为11
看起来还是有点用的哈。