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烘焙上的网格上

100个 Unity实用技能| Unity 查询游戏对象位置是否在NavMeshAhent烘焙上的网格上

unity 烘培出来没有光影效果

Unity教程||Unity 渐进式光照贴图烘焙详解

Unity(四十五):光照烘焙反射探头