Version: 6000.3
语言: 中文
烘焙光照贴图故障排除
光照贴图质量问题排查

光照贴图瑕疵故障排除

修复烘焙照明伪影,例如使用烘焙时的黑点、污迹、阴影泄漏、块状纹理、萤火虫或不正确的阴影全局光照 一组对直接和间接光照进行建模以提供逼真的光照结果的技术。
请参阅术语表
(地理标志)。

光照贴图UV瑕疵

修复扭曲或扭曲的表面以及阴影或变暗问题。

导入 3D 模型、生成光照贴图或在场景中设置烘焙光照时,配置不正确或丢失lightmap:预渲染的纹理,包含光源对场景中静态对象的效果。光照贴图覆盖在场景几何体之上,以创建光照效果。更多信息
请参阅术语表
UV会导致光照贴图表面上的视觉扭曲。

症状

由不正确的光照贴图UV引起的瑕疵通常显示为:

  • 物体上的曲面扭曲或扭曲。

  • 阴影或变暗问题,尤其是在边缘周围。

例:缺少光照贴图UV(左)的对象与正确创作的光照贴图UV(右)相比,存在严重瑕疵。

缺少光照贴图UV(左)的对象与正确创作的光照贴图UV(右)相比,存在严重瑕疵。
缺少光照贴图UV(左)的对象与正确创作的光照贴图UV(右)相比,存在严重瑕疵。

原因

光照贴图UV具有与标准纹理UV不同的特定要求:

  • 没有重叠的紫外线壳。

  • 紫外线外壳之间有足够的衬垫,以防止渗光。

  • 面积和角度的失真最小。

  • 跨 UV 壳均匀缩放。

  • 限制在 [0,1] UV 空间内的 UV 壳。

如果不满足这些条件,可能会导致烘焙光照贴图后出现瑕疵。

分辨率

你可以通过解决配置不正确的光照贴图UV、无效纹素、压缩一种存储数据的方法,可减少所需的存储空间量。请参阅纹理压缩动画压缩音频压缩构建压缩
请参阅术语表
问题光探针光探针存储有关光线如何穿过场景中的空间的信息。在给定空间中排列的光源探针集合可以改善移动对象的光照和该空间内的静态LOD场景。更多信息
请参阅术语表
振铃,或去噪和过滤伪影。

注意:使用 UV重叠(UV Overlap) 和 烘焙光照贴图(Baked Lightmap调试绘制模式来识别光照贴图UV问题。

要解决光照贴图UV问题,请执行以下步骤。

生成优化的光照贴图UV

要生成光照贴图UV,请参阅生成光照贴图UV

要优化生成的光照贴图UV,请在 光照贴图UV设置(Lightmap UVs Settings) 中,将 打包边距(Pack Margin) 设置为 计算(Calculate)。如果您的光照贴图满足 Min Lightmap Resolution,并且您的对象满足 Min Object Scale,则 Unity 会通过保守地计算足够大的包余量来防止泄漏,从而确保岛之间没有渗漏。

注意:边距过大可能会导致低纹理打包。

阴影视图中的康奈尔盒子的比较。当 包边距(Pack Margin) 为 手动(Manual )时,会出现由UV重叠引起的对象边缘周围的暗瑕疵。当“包装边距”为“计算”时,项目不可见。
阴影视图中的康奈尔盒子的比较。当 包边距(Pack Margin) 为 手动(Manual )时,会出现由UV重叠引起的对象边缘周围的暗瑕疵。当“包装边距”为“计算”时,项目不可见。

创建自定义光照贴图UV

对于复杂模型,在数字内容创建(DCC)程序中手动创作光照贴图UV可能会产生更好的结果。确保UV放置在第二个(UV1)通道中。

提高光照贴图分辨率

使用解析项目的最低分辨率来最大程度地减少内存使用和烘焙时间。

无效的纹素项目

修复烘焙光照贴图中的块状瑕疵和纹素有效性中的红色高亮纹素 场景视图您正在创建的世界的交互式视图。您可以使用场景视图来选择和定位场景、角色、摄像机、灯光和所有其他类型的游戏对象。更多信息
请参阅术语表
模式。

在编辑器的 光照(Lighting) 或 场景(Scene) 视图中烘焙光照贴图或优化场景时,光照贴图中的无效纹素可能会导致块状瑕疵。

症状

纹素无效的场景可能会显示:

  • 烘焙光照贴图中的块状瑕疵。

  • 素有效性场景视图模式下红色突出显示的纹素。

例:单面窗帘meshUnity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表
烘焙后导致纹素伪影无效(左)。纹素有效性场景视图模式以红色(右)突出显示这些无效纹素,尤其是在幕布区域周围。

烘焙后导致纹素伪影无效的单侧幕布网格(左)
烘焙后导致纹素伪影无效的单侧幕布网格(左)

原因

在以下情况下会出现无效纹素:

  • 纹素无法接收来自直接、间接或环境源的光。

  • 源自纹素的光线与背面表面相交。

筛选和去噪可能会将无效纹素传播到相邻区域。及早解决这些问题可以最大限度地减少对后处理在图像出现在屏幕上之前通过应用滤镜和效果来改善产品视觉效果的过程。你可以使用后期处理效果来模拟物理摄像机和胶片属性,例如泛光和景深。更多信息 后处理, 后处理, 后处理
术语表中查看
.

分辨率

注意:使用 Texel Validity 场景视图绘制模式进行有效调试。

调整网格法线

确保可见面具有朝外的法线,以避免着色错误。

顶点法线方向确定多边形的哪一侧显示为正面(可见)侧。翻转法线的方向会使面不可见,除非您使用双面着色器在 GPU 上运行的程序。更多信息
请参阅术语表
.始终确保要可见的多边形的法线指向外部。

例:在中心立方体上使用朝外的法线进行适当的着色。左侧立方体中的蓝色多边形和右侧立方体中的橙色多边形被翻转。左侧和右侧的立方体在烘焙后都显示无效的纹素伪影,而中间的立方体则没有。

在中心立方体上使用朝外的法线进行适当的着色
在中心立方体上使用朝外的法线进行适当的着色

大多数 3D 建模应用程序会自动生成正确的法线。

要手动调整法线,请参阅您的3D建模包文档。

避免张开面孔

若要减少水密网格无效纹素的可能性,请执行以下步骤:

  • 盖开面。

  • 焊接重叠的顶点。

  • 避免使用线或点几何。

  • 将浮动几何限制为必要情况。

3ds Max 中的 xView 等工具可以帮助识别网格问题。

启用双面全局照明

对于薄的单面网格体,如窗帘或树叶,请启用 双面全局照明(Double-Sided Global Illumination)。

例:启用双面 GI 可以解决无效纹素并增强单面网格的光反射。纹素有效性场景视图不再在窗帘周围显示任何红色无效纹素(右)。请注意,不仅伪影消失了,而且光线也从窗帘上反射出来。

启用双面 GI 可解决无效纹素并增强单面网格的光反射
启用双面 GI 可解决无效纹素并增强单面网格的光反射

要启用双面全局照明,请按照下列步骤作:

  • 对于内置渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
    请参阅术语表
    中,启用材质检查器中的“双面全局照明”复选框。

    此步骤也适用于自定义 ShaderGraph 材质。

  • 对于通用渲染管线(URP),将 渲染面(Render Face) 下拉菜单设置为 两者(Both)。你可以在 光照着色器(Lit Shader) 的 表面(Surface) 类别下找到此属性。

  • 对于 High Definition Render Pipeline (HDRP),请导航到 Lit Shader 中的 Surface 类别并配置以下属性:

    • 双面(Double-Sided) :启用此复选框可禁用背面剔除。这也实现了双面 GI。
    • 双面GI:使用此下拉菜单控制双面GI行为。
      • 自动:如果启用了双面属性,则启用双面GI。
      • 开:强制启用双面 GI,覆盖双面 GI 行为,而不使材质显示为双面。
      • 关闭:禁用双面 GI,覆盖双面 GI 行为,而不使材质显示为双面。

您还可以通过 kDoubleSidedEnable API 控制双面 GI 属性。

例:双面全局照明禁用(左)和启用(右)。请注意右侧图像中网格体相交处的深色伪影。在这种情况下,请禁用双面全局照明以获得正确的输出。

双面全局照明禁用(左)和启用(右)
双面全局照明禁用(左)和启用(右)

光照贴图器在纹素未接收到照明或与背面相交时将纹素标记为无效。这允许扩张过滤器将光照数据从有效的周围纹素推送到部分覆盖的纹素中。这样做有助于去除几何交汇处的暗瑕疵。

默认情况下,为所有材质启用双面GI将导致网格相交或重叠的变暗效果。

调整背面容差属性

要配置“背面容差”属性,请执行以下步骤:

  1. 创建新的光照贴图参数资产

  2. 导航到 光照贴图(Lightmapping) 分段网格体渲染器(Mesh Renderer一个网格体组件,用于从网格体过滤器中获取几何体,并将其渲染到对象的变换组件定义的位置。更多信息
    请参阅术语表
    元件。

  3. 光照贴图参数(Lightmap Parameters) 资产分配给 网格体渲染器(Mesh Renderer) 组件。

背面容差”属性控制必须击中正面几何体才能将纹素视为有效的光线百分比:

  • 增加该值会增加光照贴图器Unity 中的一种工具,可根据场景中光源和几何体的排列来烘焙光照贴图。更多信息
    请参阅术语表
    在纹素遇到背面时将其标记为无效。

  • 降低此值会减少无效纹素的数量。

注意:背面容差(Backface Tolerance) 值可能会导致遮挡和/或反射光照丢失,从而可能改变场景的外观。

将网格体移近世界原点

32 位浮点精度格式施加的限制可能会导致在将光照贴图网格放置在远离世界原点 (0,0,0) 的地方或具有巨大比例时出现无效纹素。此问题不仅限于光照贴图网格;对象和动画离世界原点越远,它们就会失去精度。

要解决精度问题,请按照下列步骤作:

  • 将网格体移近 (0, 0, 0) 原点。

  • 调整 光照贴图参数(Lightmap Parameters) 资源中的 推开(Push Off) 值。

去噪伪影

修复边缘周围的拖尾、污迹或振铃以及黑色光照贴图或过多的噪点。

在编辑器的光照场景视图中配置去噪设置以烘焙光照贴图时,机器学习降噪器可能会引入伪影。

症状

去噪伪影可能包括:

  • 边缘周围有污迹、污迹或环形。
  • 去噪时出现黑色光照贴图或过多噪点。
  • 明亮像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
    请参阅术语表
    穿过场景。这些文物有时被称为萤火虫。

例:样本计数低的严重伪影(左),而样本计数较高的结果(右)。启用了 Open Image Denoiser 的去噪伪影。当所有样本计数都设置为 32 并启用 Open Image Denoiser 时,会出现严重的伪影(左)。当所有样本计数设置为 2K 并启用 Open Image Denoiser(右)时,图像会更干净。

样本计数低的严重伪影(左);样品数量越多,结果越清晰(右)
样本计数低的严重伪影(左);样品数量越多,结果越清晰(右)

原因

去噪伪影通常发生在以下情况下:

  • 对于降噪器收集的数据量来说,场景过于复杂。
  • 降噪器缺乏像您这样的场景所需的训练数据。
  • 您有薄几何或重叠的边。当 Unity 在光照贴图期间扩展几何体时,它可能会创建降噪器无法解析的无效纹素。
  • 你使用需要高清范围(HDR)光照贴图的高强度光源。

间接噪声通常会导致结果不佳。

分辨率

增加样本数

大多数降噪器至少可以处理 256 个样本。您可以通过增加样品计数来提高去噪性能。

使用不同的降噪器

要根据场景的特征选择特定的降噪器,请按照下列步骤作:

  1. 筛选设置为高级

    请参阅渐进式 GPU

  2. 为直接、间接和环境光遮挡一种近似环境光(不是来自特定方向的光)可以击中表面上的点的量的方法。
    请参阅术语表
    缓冲区。

使用高斯或 A-Trous 滤波器

要使用高斯或 A-Trous 滤波器,请按照下列步骤作:

  1. 筛选设置为高级

    请参阅渐进式 GPU

  2. 选择所需的过滤器类型。

您可以将这些滤波器与机器学习降噪器结合使用,以增强结果。

萤火虫

修复由靠近场景几何体的明亮光源引起的斑点噪点(萤火虫)。

症状

康奈尔大学的盒子场景,一个空房间里有一个立方体。在左侧,图像是嘈杂的。在右侧,图像很清晰。 例:可见斑点噪声(萤火虫)(左)。使用 16K 间接样本烘焙并启用 Open Image Denoiser 以消除噪点(右)后。

在明亮的小区域可以看到斑点噪音(萤火虫)。

原因

光照贴图中的小而高亮度区域会导致出现斑点噪点。从纹素生成光线时,可能会错过这些区域。当光线与这些高强度区域相交时,它们会扭曲平均光度估计值。这会导致斑点噪声,通常被称为“萤火虫”。

分辨率

注意:正在开发溅片夹紧功能,以解决准时灯的这个问题。现在请参阅以下解决方案来解决问题。

增加样品数量

这是一种暴力破解方法。为了获得可接受的结果,请将 4K 或更高的间接样品与滤波和去噪结合使用。

启用重要性抽样

降低高频场景中的噪点HDRI高动态范围图像
术语表中查看
:

康奈尔的盒子场景,一个空房间里有两个长方体,还有一个天窗。左图中来自日落时风景天空盒的像素充满噪点,右侧显示为球体。中间的图像很清晰。 例:由高频HDRI引起的萤火虫(左)。启用 重要性采样(Importance Sampling) 切换开关(中间)后的同一场景。高频立方体贴图六个方形纹理的集合,可以表示环境中的反射或几何体后面绘制的天空盒。这六个正方形形成了一个围绕物体的假想立方体的面;每个面表示沿世界轴方向(上、下、左、右、前和后)的视图。更多信息
请参阅术语表
用于照亮场景(右)。

康奈尔的盒子场景,一个空房间里有两个长方体,还有一个天窗。左图清晰。中间的图像因河流场景的天空盒中的像素而充满噪点,该像素在右侧显示为球体。 例:启用重要性采样可能会在使用低频HDRI时引入噪声。重要性抽样已禁用(左)。启用重要性抽样(中心)。用于照亮场景的低频立方体贴图(右)。

在以下情况下启用重要性抽样:

  • 你正在使用高频HDRI图像进行环境照明。这方面的一个例子是地平线上有一个明亮的太阳黑子的 HDRI。

如果出现以下情况,请禁用重要性抽样:

  • 你正在使用低频HDRI图像进行环境照明。这方面的一个例子是阴天HDRI或纯色天空盒(skybox) 一种特殊类型的材质,用于表示天空。通常是六面的。更多信息
    请参阅术语表
    .

警告:在使用低频HDRI时启用重要性采样可能会导致噪声水平增加。

启用过滤和去噪

要消除噪声,请将 ML 降噪器与滤波结合使用。要获得干净的结果,请使用高样本计数。

避免小型烘焙自发光对象

要减少使用自发光材质时出现的问题,请通过以下方式减少小型烘焙自发光对象的数量: 1. 设置游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
材料检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
.

该对象将保持其自发光外观,但不会对全局照明做出贡献。减少烘焙的小型自发光对象的数量有助于降低噪点。

将烘焙光源从静态几何体中移开

默认情况下,URP 和 HDRP 对光源使用平方反比衰减。在内置渲染管线中,您可以使用自定义衰减来实现相同的效果脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
.不幸的是,当这种光源放置在非常靠近静态几何体时,可能会导致噪声水平增加。确保静态几何体和场景中的光源之间有足够的距离。

过滤工件

修复高斯漏光、模糊和斑点、A-Trous 斑点和HDR高动态范围
请参阅术语表
降噪失败。

在编辑器的 光照(Lighting) 或 场景(Scene) 视图中烘焙光照贴图时,使用高斯或A-Trous滤镜来减少噪点可能会产生瑕疵。

症状

过滤工件取决于过滤器类型:

例:使用高斯滤波器在 1 纹素半径处过滤的场景。当所有样本都设置为32时,最终光照贴图会显示斑点(左)。将所有样品设置为 2K 并启用高斯滤波进行烘焙可产生更好的结果(右)。

使用高斯滤波器在 1 纹素半径处过滤的场景
使用高斯滤波器在 1 纹素半径处过滤的场景

例: 使用 A-Trous 滤波器过滤的场景。当所有样本设置为 32 时,A-Trous 边缘保留算法无法区分噪声和边缘,因此完全失败(左)。将所有样本增加到 2K 后,A-Trous 滤波器产生了不错的结果,与高斯滤波器相比模糊更少(右)。

使用 A-Trous 滤镜过滤的场景
使用 A-Trous 滤镜过滤的场景

原因

过滤工件原因取决于过滤器类型:

  • 高斯滤波器

    • 光或影通过几何体泄漏。
    • 模糊的光照贴图。
    • 斑点状光照贴图。
  • A-Trous 过滤器

    • 低采样数时出现散斑噪声。
    • 无法对HDR光照贴图进行降噪(噪点被解释为边缘)。

分辨率

增加样品数量

您可以通过增加样本计数来减少斑点或斑点等伪影。

使用机器学习降噪器

与传统滤波器相比,机器学习降噪器可以有效去除噪声,偏差更少。将它们与过滤器结合使用可以增强结果:

  • A-Trous:与机器学习降噪器配合良好,以保留边缘。
  • 高斯:在低半径设置下性能更好。

调整过滤设置

要调整滤波强度,请调整滤波器的半径σ。如果场景存在光照贴图泄漏瑕疵或模糊,请减小高斯**滤镜的半径值。这减少了双侧模糊量并防止纹素涂抹。

请参阅渐进式 GPU

压缩伪影

修复色带和块状伪影。

在编辑器的 光照(Lighting) 或 检查器(Inspector) 窗口中进行光照贴图烘焙或资产压缩期间,优化光照贴图以实现移动性能时,可能会出现瑕疵。

症状

色带和块状伪影。

例:Android 平台上低质量压缩引入的条带伪影(左)。您可以使用高质量压缩(右)来修复条带伪影。

Android 平台上低质量压缩引入的条带伪影(左)
Android 平台上低质量压缩引入的条带伪影(左)

原因

色带和块状伪影通常与低质量有关纹理压缩3D 图形硬件要求将纹理压缩为专用格式,这些格式针对快速纹理采样进行了优化。更多信息
请参阅术语表
.Unity 会尝试自动为目标平台选择最佳压缩格式。出于兼容性考虑,纹理格式一种文件格式,用于在 3D 图形硬件(如显卡或移动设备)实时渲染期间处理纹理。更多信息
请参阅术语表
用于移动平台通常更容易受到压缩伪影的影响。

分辨率

调整光照贴图编码

要调整光照贴图编码,请按照下列步骤作:

  1. 打开 编辑>项目设置(Edit Project Settings) > 播放器(Player) > 其他设置

  2. 修改每个目标平台的光照贴图编码设置。

配置 HDR 立方体贴图编码

要为具有压缩伪影的反射对象配置 HDR 立方体贴图编码,请执行以下步骤:

  1. 打开 编辑>项目设置(Edit Project Settings) > 播放器(Player) > 其他设置

  2. 修改 HDR 立方体贴图编码设置。

注意:HDR 立方体贴图编码设置在 Unity 2022.1 及更高版本中可用。

修改光照贴图压缩

要控制压缩质量,请按照下列步骤作:

  1. 转到 Window > 渲染>照明

  2. 光照(Lighting) 窗口中,找到 光照贴图(Lightmaps) 选项卡。

  3. 光照贴图设置(Lightmaps settings) 分段下找到 光照贴图压缩(Lightmap Compression) 下拉菜单。

  4. 选择压缩质量。

    更高质量的预设可减少烘焙后的压缩伪影。

手动覆盖纹理格式

要手动覆盖纹理格式,请按照下列步骤作:

  1. 项目(Project) 窗口中找到光照贴图纹理。

  2. 选择光照贴图纹理。

  3. Inspector 窗口中,为所需平台启用 Override 复选框。

  4. 选择所需的压缩格式。

  5. 单击应用

注意:自定义覆盖在重新烘焙光照后重置。每次烘烤后重复这些步骤。

光探针振铃伪影

修复不自然的探针照明和可见的波纹伪影。

在编辑器的 光照(Lighting) 或 场景(Scene) 视图中设置光照探针或烘焙光照贴图时,光照探针中的振铃瑕疵可能会导致着色不正确。

症状

  • 光探针照亮的物体会表现出不自然的光照。

  • 光探针周围可见的涟漪或伪影。

例:删除振铃禁用(左)和启用(右)。请注意负光探针值如何导致左侧雕像的错误着色。您可以通过启用“删除振铃”选项来解决此问题,但最终输出可能显得非常流畅。

删除已禁用(左)和已启用(右)的振铃
删除已禁用(左)和已启用(右)的振铃

原因

当强光照射到光探头时,光信号不会在其表面衰减。相反,它像波浪一样在光探针中荡漾。因此,探头的受影响部分存储负光值。这种现象表现为振铃伪影,导致错误的照明。

分辨率

注意: 若要使调试更容易,请启用Gizmo与场景中的游戏对象关联的图形叠加层,并显示在场景视图中。内置场景工具(如移动工具)是 Gizmo,您可以使用纹理或脚本创建自定义 Gizmo。某些 Gizmo 仅在选择游戏对象时绘制,而其他 Gizmo 则由编辑器绘制,而不管选择了哪个游戏对象。更多信息
请参阅术语表
场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
视口用户在屏幕上应用的可见区域。
术语表中查看
,然后调整工作流程设置中的光探头可视化属性。

消除光探针振铃

要消除光探头振铃,请按照下列步骤作:

  1. 选择光照探针组一个组件,用于将光照探针添加到场景中的游戏对象。更多信息
    请参阅术语表
    元件。

  2. 启用“删除振铃”属性。

注意:此选项可降低探针照明对象的对比度。如果您的场景没有显示振铃伪影,请禁用它。

调整场景照明

若要减轻高强度直接照明引起的振铃伪影,请执行以下步骤:

  • 降低 光源(Light) 组件中的 强度(Intensity) 值。

  • 混合光源Mode 属性设置为 混合(Mixed) 的光源组件。混合光源的一些计算是预先执行的,混合光源的一些计算是在运行时执行的。场景中所有混合光源的行为由场景的 光照模式(Lighting Mode) 决定。更多信息
    请参阅术语表
    以平衡实时直接照明和烘焙间接照明。

光照贴图中的硬边

平滑接缝和图表边界处的硬边和照明不连续性。

症状

将烘焙光照贴图与渐进式光照贴图一起使用时,你可能会注意到:

  • 沿着单独网格面之间的接缝出现的硬边。

  • 光照贴图中图表边界处的光照中可见的不连续性。

光照贴图中的硬边
光照贴图中的硬边

原因

当 Unity 烘焙光照贴图时,它会将彼此靠近但分开的网格面视为光照贴图空间中不同的网格面,从而创建称为接缝的边缘。

理想情况下,接缝是看不见的,但有时会出现硬边。发生这种情况是因为GPU无法在光照贴图中单独的图表之间混合纹素值,从而将它们视为不同的实体并导致可见的不连续性。

分辨率

接缝拼接平滑使用渐进式光照贴图中的烘焙光照贴图渲染的游戏对象上的硬边。启用后,Unity 会执行额外的计算,以改善光照贴图中接缝的外观。虽然拼接并不完美,但它通常会显着增强最终结果。但是,此功能会增加烘焙时间,因此默认情况下处于禁用状态。

激活时,光照贴图器会识别要拼接的边对,并平滑接缝中的照明。这仅适用于沿图集中图表边界水平或垂直运行的直边,并适用于 UV 空间中轴对齐的矩形。

注意:

  • 接缝拼接仅适用于渐进光照贴图器
  • 接缝拼接仅适用于单个游戏对象;它无法平滑多个游戏对象之间的接缝。

要平滑硬边:

  1. 在场景中选择具有网格渲染器组件的游戏对象。

  2. 网格渲染器检查器的照贴图(Lightmapping) 分段中,启用 缝合接缝(Stitch Seams)。

或者,使用 MeshRenderer.stitchLightmapSeams API 以编程方式启用接缝拼接。

例:接缝缝合的场景。

接缝缝合
接缝缝合

光照贴图中的光渗色

修复光照贴图锯齿、UV重叠和红色高光警告。

症状

轻微出血通常表现为:

  • 渲染光照贴图中的锯齿或像素化。
  • Unity 检测到重叠的 UV,并在控制台中显示警告消息。
  • UV重叠绘制模式或烘焙光照贴图预览中的红色高光。

例:红色像素表示重叠的图表邻域。

光照贴图中的光渗色
光照贴图中的光渗色

原因

当一个光照贴图图表中的数据由于图表之间的间距不足而溢出到另一个光照贴图图表上时,就会发生渗光,从而导致锯齿或像素化等图形伪影。

每个光照贴图都包含多个图表,Unity 在运行时将这些图表映射到网格面。这些图表存储用于计算最终外观的照明数据。在渲染过程中,GPU 通过插值四个最近的纹素(称为双线性邻域)的值来采样光照数据。当图表放置得太近时,它们的邻域会重叠,导致轻微渗色。影响此问题的因素包括光照贴图分辨率、网格体UV和导入器设置。Unity 提供了检测和解决这些问题的工具。

例:由于图表出血而导致的图形伪影。

由于图表出血导致的图形伪影
由于图表出血导致的图形伪影

光线渗色是由光照贴图中的图表邻域重叠引起的。当图表之间的间距不足时,就会发生这种情况,通常是由于:

  • 用户提供的光照贴图UV中的边距不足。
  • Unity生成的光照贴图UV中的小包边距。
  • 光照贴图分辨率低。
  • 单个光照贴图中的高密度图表。

分辨率

要解决轻微渗色问题,请按照下列步骤作。

调整光照贴图UV边距

  • 如果手动提供UV,请使用3D建模软件增加边距。

  • 对于Unity生成的UV,请转到模型导入设置,然后:

    • 将边距方法设置为计算和调整最小光照贴图分辨率最小对象比例
    • 或者,将 边距方法 设置为 手动 并增加 包装边距 值。

    有关更多详细信息,请参阅生成光照贴图UV文档。

提高光照贴图分辨率

  • 要全局提高分辨率,请调整 光照贴图器(Lightmapper) 选项卡中的 设置(Lightmapper Settings) 。

  • 要提高特定游戏对象的分辨率,请在 Mesh Renderer 组件中修改其光照贴图设置

使用 Unity 的可视化工具识别重叠

  • 在场景视图中启用 UV重叠(UV Overlap) 绘制模式,以突出显示有问题的纹素。

    例:使用UV重叠绘制模式的场景视图(请参阅左上角的下拉菜单)。

    UV重叠绘制模式
    UV重叠绘制模式
  • 使用 烘焙光照贴图预览(Baked Lightmaps Preview) 在 光照(Lighting) 窗口中查看和诊断UV重叠。

    例:烘焙光照贴图预览 在 光照(Lighting) 窗口的 烘焙光照贴图(Baked Lightmaps) 选项卡中。

    烘焙光照贴图预览
    烘焙光照贴图预览

通过实施这些解决方案,您可以最大限度地减少或消除渗光伪影。

例:与以前相同的网格,但没有出血伪影。

与以前相同的网格,但没有出血伪影
与以前相同的网格,但没有出血伪影

其他资源

烘焙光照贴图故障排除
光照贴图质量问题排查