Unity光照烘焙笔记
研究光照烘焙就弄一个地面一个房子切忌弄一个巨大场景烘焙一次几十分钟。烘焙时间直接取决于场景里Contribute GI的物体数量。Lighting 窗口 - Unity 手册播放中切换场景后地面阴影是纯黑只有投到地面的阴影是纯黑的。且跳转到使用相同Terrain的场景没有问题。相关文章关于Unity在游戏运行过程中切换场景导致场景变暗的问题_unity切换场景后变暗-CSDN博客Unity 切换场景变黑的问题_unity场景变黑了怎么变成原来的样子-CSDN博客生成光照可以解决。这个操作生成了这几个文件物体的Mesh Renderer会显示它使用的光照贴图对LightingData的官方介绍光照数据资源 - Unity 手册Baked光源把阴影刷到地面上只有光源选了baked阴影才会刷到地面上。Mixed光源只会把地面“熏黑”一块。阴影还是实时的。地形里树的阴影在相机离近时消失把光照的Shadow的Near Plane调大可解决。这样看这个参数和相机的Near clip plane类似只是针对阴影的而且效果是反的Near plane调大原来裁剪的不裁剪了好像裁剪面变近了Realtime、Baked、MixedRealtime和Mixed总之下面有Realtime shadow的打包出来阴影区域更暗。可能因为Realtime shadow叠加在了烘焙的阴影上。BakedMixed但是后来又打包一次baked也是很黑的效果。物体背阴面贴图有脏斑然后用了一组很低的参数生成的光照贴图在房子背阴面是这样的同时在物体的Mesh renderer下有这个警告说的应该就是这个问题。又看了另一个有花斑的模型没有这个警告好像又不是因为Overlapping UV。发现在模型导入设置里勾选Generate Lightmap UVs可以解决。烘焙完屋里太黑受Indirect Intensity影响调大后屋里亮了一点但是屋外亮到发光。屋子不勾选Contribute GI就不会生成光照贴图也不会变黑。Max Bounces的影响注意下面图的门没有Contribute GI不受烘焙影响。反弹0次反弹1次反弹2次反弹10次结论Max Bounces从0到2屋里会亮一些再变大基本没影响。Indirect IntensityMax Bounces2Indirect Intensity5屋里外墙背光外墙向光几个实验主光源baked后生成光照的效果地面上有一些表现阴影的粗糙暗斑人物没有被照亮。暗斑因为一张贴图的分辨率不可能支持实时阴影那么细的阴影。要烘焙阴影稍微细节一些可能需要2048那样巨大的贴图可能撑爆显存。Baked烘焙到地形的阴影淡淡的一块暗斑再改成Mixed不重新烘焙也没用。可能也和光照设置有关。设置是这样的主光源Mixed勾选Baked GIShadowmask看起来和默认的实时光照一样。把场景引用的Lighting Data Asset删掉所有非向光面背光面、被遮挡面变黑。于是我们知道这一堆光照贴图存的是背光面和被遮挡面的纹理。光照相关资产文件Lighting Settings后缀为.lighting。是填在光照窗口Scene页签的文件。如果不填下面的设置都被禁用因为使用了默认设置。Lighting Data Asset后缀为.asset。是生成光照费半天劲生成的文件之一。Reflection Probe-0后缀为.exr。是生成光照生成的文件之一。光照贴图分为较亮的dir结尾的、比较暗的light结尾的。它们是成对出现的同一对是应用于同一些表面的。看检查器里的Texture Type可知第一种叫Directional Lightmap第二种叫Lightmap。感受LightingData的作用要想看出区别烘焙完贴图一定要关闭光源如果光源不变实时光照和烘焙没有区别。然后把Baked Map用的LightingData移除。然后这里我们注意到关闭光源移除LightingData变得特别黑。没有LightingData光源从打开到关闭却没有那么黑。到达同一个目标状态路径不一样最后效果也不一样。然后我们注意到天空盒对物体亮度也有很大影响。总之如果我们想做同一个地图一天不同时间还是不要用烘焙光照。一些理解首先只有对static物体生成光照才有意义。间接光照物体背阴面、物体被其他物体遮挡的区域都收不到直接光照靠间接光照照亮。物体阴面或阴影区全黑就是没有间接光照。生成光照中一些模型黑色的部分是正在计算的部分。过一会会显示正常。对于Baked光源生成光照后阴影会变成贴图里的暗斑。对于地形上的阴影因为地形比较大想要一些细节就要巨大的贴图。且Baked生成光照后人物等动态物体不被照亮。生成光照始终会导致屋里太黑的问题。如果调大Indirect Intensity屋里会亮一些外墙会非常亮。没有实时光照效果好。改变光源mode没什么效果需要重新生成光照。即使在baked lightmap里清除了lighting data只要这些文件存在就会引用。Lighting has been disabled in at least in one Scene view Any changes applied to lights in the Scene will not be updated in these views until Lighting has been enabled again