Unity中光影烘焙经常会遇到很多莫名其妙的问题,大智总结了一个问题解决手册,本文是比较常见的一些问题,还有一些不那么常见的问题,《手册全文pdf》获取方法:洪流学堂公众号回复烘焙
。
Realtime GI常见问题
卡在5/11 Clustering
主要原因是需要生成的Cluster数量非常多,计算量很大
- 全局Indirect Resolution过大,导致需要生成过多Cluster
- 大物体的Lightmap Parameters中Resolution或Cluster Resolution过高,导致需要生成过多Cluster
- 小物体过多
- 小物体不勾选Contribute GI,用Light Probe
卡在7/11 Lighting Transport
需要计算的总的像素数量过多
- 全局Indirect Resolution过大
- 单个物体,特别是大物体的Lightmap Parameters中Resolution未优化
- 距离远的大物体,尽量减小Resolution
- 小物体过多,有过多的小Chart生成
- 小物体不勾选Contribute GI,用Light Probe
Baked GI(Progressive)常见问题
点了烘焙,没有效果
- 物体没有标记GI Contribute
- 场景中没有Baked或Mixed灯光
- 检查灯光的Mode
- 物体Shader不支持
- 使用内置Shader测试
- 内置管线Standard Shader
- URP/HDRP的Lit shader
光照贴图模糊
- 大概率是因为Resolution过低,特别是直接光和阴影烘焙到lightmap的时候
- 如果物体很大,也要考虑Max Lightmap Size是否过小
- 展UV时,UV缩放不成比例(使用Scene窗口的Baked Lightmap绘制模式可以很容易看出来,不成比例地方的不是正方形),会导致光照拉伸看起来很模糊
烘焙时间很长没有结束
参考课程中《513大场景烘焙最佳实践》
贴图漏光
通常是因为漏光的区域在采样时,纹素同时处于明亮和阴影处。常见于有明亮的室外灯光的昏暗室内场景。
- 调节lightmap UV
- 如果原来UV是连在一起的,将亮部和暗部的UV拆分开
- 提高resolution
- 修改filtering设置,激进的Gaussian过滤(radius太高)会导致漏光
- 调整模型的mesh
- 物体不要发生交叉
- 尽量使用单面,对于室内模型,再单独制作一个外面的壳子包住室内作为外墙
UV Overlap警告
物体内部Lightmap UV块之间间隔不够,导致可能会出现渗光
- 如果是手动展的UV1,则增加UV块之间的间隔
- 如果是在Unity中自动Generate Lightmap UVs,则调节参数增加UV块之间的间隔
- 调高全局Resolution(此参数调高时,UV在lightmap中会更大,UV块之间的间隙也会增大,减少Overlap)
- 调高单个物体的Scale In Lightmap(此参数调高时,UV会整体放大,UV块之间的间隙也会增大,减少Overlap)
物体没有光照
- 静态物体没有标记GI Contribute
- 如果是动态物体要添加Light Probe
- 注意Mesh Renderer上的Light Probes选项不要是Off
- 物体材质的metallic和smoothness都很高,反射度很高(类似不锈钢小球),此时如果场景中没有Reflection Probe,物体无法反射出周围的场景,会看起来是黑的或者错误的
- 注意Mesh Renderer上的Reflection Probes选项不要是Off
自发光物体没有照亮周围
- 材质中Emission部分的Global Illumination要设为Baked
- 下图中间这种效果叫Bloom辉光,需要使用Post Processing中的Bloom效果
烘焙后光照错乱
- UV问题
- 如果是在外部展的UV1,需要注意:
- UV不能有任何重叠
- UV块之间要有足够的间距
- UV尽量减少扭曲和变形
- UV的比例和原模型的尺寸成比例
- 必须在[0,1]的UV空间中,不能超出
- 如果是在Unity内导入设置中Generate lightmap UVs
- 尝试在Margin设置中设置得更大
- 模型背面漏光
- 光源位置问题,尝试移动或关闭漏光附近的光源来定位问题灯光
- 对于单面渲染的物体,如果光源从物体的背面照射,光就会穿透这个物体造成视觉上的异常。常见的比如室内场景,内墙单面渲染,平行光会穿透内墙,此时应该给室内场景加一个外墙来阻隔光线,或者内墙双面渲染(见下面一条)。
- 尝试将附近模型的材质双面烘焙,勾选Double Side Global Illumination(有的Shader没有此选项可修改Shader解决)如下图
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删