Version: Unity 6.0 (6000.0)
语言 : 中文
检查光照贴图 UV
模型导入设置检视面板窗口中的光照贴图 UV 设置参考

对自动生成的光照贴图 UV 进行故障排除

Pack Margin

为允许过滤,光照贴图包含图表边缘附近的纹理像素中的光照信息,因此应在图表之间始终包含一定的边距,以免在应用光照贴图时出现光渗。

光照贴图分辨率定义了光照贴图的纹理像素分辨率。光照贴图工具 (Lightmapper) 会扩大光照贴图中的一些图表纹理像素以避免黑色边缘,因此网格的 UV 图表必须至少相距两个完整的纹理像素,从而避免光渗。使用 Pack Margin 设置可确保几何体的 UV 图表之间有足够的边距。

在光照贴图 UV 空间中,图表之间的填充需要至少两个完整纹理像素,以免出现 UV 重叠和意外光渗。在此图中,黑色空白表示图表之间的空隙。

最小光照贴图分辨率和最小对象比例

将 UV 图表放置得太近可能会导致在最终的光照贴图中出现图表纹素交叉渗漏。将图表放置得太远会浪费内存。对象的理想打包间距取决于分配给它的光照贴图纹素的数量。

Unity 用于 MeshRenderer 的纹素数量取决于 MeshRenderer 的光照贴图分辨率和变换比例。为了计算合适的边距,Unity 需要知道这些属性的期望最小值。

MeshRenderer 的光照贴图分辨率是 MeshRenderer 显示所在场景的光照设置资源 (Lighting Settings Asset)Lightmap Resolution 属性和 MeshRendererScale in Lightmap 属性的组合。请注意,这意味着同一个 MeshRenderer 在不同的场景中可以具有不同的光照贴图分辨率。

您可以使用 Inspector 查看给定场景中 MeshRenderer 的光照贴图分辨率:

  1. 在场景视图或层次结构中,选择具有 MeshRenderer 组件的游戏对象。
  2. 在 Inspector 中,导航到 MeshRenderer 组件的光照贴图 (Lightmapping) 部分。
  3. 打开烘焙光照贴图 (Baked Lightmap) 折叠。Unity 在带有 Lightmap Resolution 标签的光照贴图分辨率 (Lightmap Resolution) 中显示 MeshRenderer 的光照贴图分辨率,并在带有光照贴图对象缩放 (Lightmap Object Scale) 标签的烘焙光照贴图中显示其变换比例。

角度失真

以下截屏显示了相同的分辨率,但具有不同的 UV。第一张图的 Angle Error 较高,结果中包含意料之外的失真。第二张图使用 Angle Error 默认值 (8%)。在具有较多三角形的网格中,角度失真会让形状显著失真。

区域失真

在下图中,两个具有相同参数的聚光灯照亮圆柱体的两侧。圆柱体右侧的 Area Error 值较高,导致三角形失真并且分辨率降低,从而在光照中产生瑕疵。

检查光照贴图 UV
模型导入设置检视面板窗口中的光照贴图 UV 设置参考