> 技术文档 > unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠


提示:仅供参考

文章目录

  • 前言
  • 一、UV重叠
      • 1.检查有几套UV
      • 2.检查有没有UV重叠(以下unity官方给出的三种检查方式)
  • 二、解决方法
      • (1)Generate Lightmap UVs
      • 2.调整 Pack Margin值
      • 3.烘焙设置的LightmapResolution调大
      • 4.Mesh Renderer 中更改游戏对象的光照贴图分辨率
      • 5.以下为其他博主所遇到的问题及解决方案
  • 总结

前言

在unity模型烘焙出来后,呈现黑色、光渗或布满脏斑,有可能是没有展UV,也有可能是UV重叠了。
由于GPU采样的工作方式,如果一个图表中的数据过于接近,它们可能会流到另一个图表中(也就是说不一定重叠太近了也不行)
下图UV太近了:
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠
为避免光渗,图表之间必须有足够的空间。
当 GPU 对光照贴图进行采样时,光照系统会从最接近采样点的四个纹理像素计算最终采样值(假设使用双线性过滤)。
这四个纹理像素称为采样点的双线性“邻域”。
如果图表重叠(也就是说,如果图表中任何点的邻域与另一个图表中任何点的邻域重叠),表示图表太靠近。
在下图中,白色像素表示图表邻域,红色像素表示重叠的邻域
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

以下常见的UV重叠解决方案思路

一、UV重叠

1.检查有几套UV

下图是1套UV
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠
下图是2套UV
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

2.检查有没有UV重叠(以下unity官方给出的三种检查方式)

链接: unity官方方案
(0)密切关注 Unity 的控制台。如果 Unity 检测到重叠的 UV,它会打印一条警告消息,其中包含受影响游戏对象的列表
注意是警告消息,为黄色,一般人都习惯不看。
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

(1)UV Overlap
使用 Baked Lightmaps Preview。选择一个游戏对象,前往 Lighting 窗口,然后选择 Baked Lightmaps 选项卡。双击突出显示的光照贴图,导航到 Preview 窗口,然后选择 Baked UV Overlap(请查看右上角的下拉选单)。Preview 窗口在此视图中将有问题的纹素标记为红色。
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

(2)在Scene面板,将shadingMode改为UV Overlap,然后观察场景中有没有红色的部分,红色部分就是有UV重叠
使用 Scene 视图中的 UV Overlap 绘制模式(有关更多信息,请参阅 Scene 视图中的 GI 可视化)。
启用此模式后,Unity 会以红色突出显示图表中的哪些像素纹理过于靠近其他图表中的纹理像素。
如果您在 Scene 视图中发现瑕疵,并希望快速检查是否由 UV 重叠导致了此问题,则此方法尤其有用
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

二、解决方法

(1)Generate Lightmap UVs

可能模型师提供的UV就已经重叠了,需要创建一套新UV,也就是第二UV。
模型导入后,勾选上以下选项,不然烘培时也会提示烘培后提示创建(Generate Lightmap UVs)
如Generate Lightmap UVs创建的这套UV依然有问题,就让模型师返工重新展UV。
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠
选中模型,勾选Generate Lightmap UVs即可
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

2.调整 Pack Margin值

如果 Unity 自动为模型生成光照贴图 UV(意思是需要勾选Generate Lightmap UVs)。
您可以让 Unity 增加包边距。最简单的方法是将 Margin Method 设置为 Calculate,并设置适当 Min Lightmap Resolution和 Min Object Scale。如果愿意将 Margin Method 设置为 Manual,可以直接调整 Pack Margin值。如需了解这些设置的更多信息,请参阅有关生成光照贴图 UV 的文档。
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

3.烘焙设置的LightmapResolution调大

提高整个光照贴图的分辨率。这样将增加图表之间的像素数量,从而降低发生渗漏的可能性。
缺点是光照贴图可能会变得太大。
您可以在 Lightmapper Settings 下的 Lighting 选项卡中执行此操作。
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

4.Mesh Renderer 中更改游戏对象的光照贴图分辨率

提高单个游戏对象的分辨率。这种情况下可以仅为具有重叠 UV 的游戏对象提高光照贴图分辨率。这也可能增加光照贴图的大小,但可能性较小。您可以在 Lightmap Settings 下的 Mesh Renderer 中更改游戏对象的光照贴图分辨率。
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

5.以下为其他博主所遇到的问题及解决方案

链接: 其他博主
1.该博主后来遇到的问题
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠
2.后来补充的
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠
3.因为场景重新建模了,新开了一个工程,依旧是上图的问题,但这次不管我怎么调整参数或者设置,墙面的这种接缝处仍然有之前那种脏脏的感觉,
unity 模型UV重叠问题相关(重新整理)_unity 烘焙光照贴图重叠

总结

好记性不如烂笔头!