Unity烘焙常见问题
Posted 大智_Unity玩家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity烘焙常见问题相关的知识,希望对你有一定的参考价值。
本文首发于公众号洪流学堂,未经允许,不可转载。
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解决)如下图
-
本文是比较常见的一些问题,还有一些不那么常见的问题,《手册全文pdf》获取方法:洪流学堂公众号回复烘焙
。
以上是关于Unity烘焙常见问题的主要内容,如果未能解决你的问题,请参考以下文章
100个 Unity实用技能| Unity 查询游戏对象位置是否在NavMeshAhent烘焙上的网格上
100个 Unity实用技能| Unity 查询游戏对象位置是否在NavMeshAhent烘焙上的网格上