Version: 6000.3
语言: 中文
漏光故障排除
对缺少镜面反射高光的材质进行故障排除

对场景中没有烘焙全局光照进行故障排除

修复导致烘焙的问题全局照明 一组对直接和间接照明进行建模以提供逼真的照明结果的技术。
请参阅术语表
场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
失败。

两张图片显示一个康奈尔大学的盒子,里面有两个盒子。第一张图像没有全局照明,因此阴影显得太暗。第二张图像已烘焙全局光照,因此阴影和光源被正确渲染。
两张图片显示一个康奈尔大学的盒子,里面有两个盒子。第一张图像没有全局照明,因此阴影显得太暗。第二张图像已烘焙全局光照,因此阴影和光源被正确渲染。

症状

烘焙全局照明无法在场景中渲染,导致场景中的光源减少,并使阴影和整体图像看起来比预期的更暗。

原因

如果不满足某些先决条件,则渐进式Lightmapper:Unity 中的一种工具,可根据场景中光源和几何体的排列来烘焙光照贴图。更多信息
请参阅术语表
可能无法在场景中生成光照。这些通常包括但不限于:

  • 没有对象被标记为全局光照 (GI) 贡献者。
  • 场景中没有烘焙或混合光源。
  • 问题着色器在 GPU 上运行的程序。更多信息
    请参阅术语表
    .

解决方法 - 将游戏对象标记为 GI 参与者

要将对象标记为 GI 参与者,请执行以下步骤:

  1. 选择您的游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    .
  2. 在游戏对象的检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
    请参阅术语表
    窗口中,转到 网格体渲染器(Mesh Renderer) 组件
  3. Lighting 标题下,启用 Contribute to Global Illumination。这还会自动启用 接收全局光照(Receive Global Illumination) 属性,确保对象可以在lightmap:预渲染的纹理,包含光源对场景中静态对象的效果。光照贴图覆盖在场景几何体之上,以创建光照效果。更多信息
    请参阅术语表
    代。

接收全局光照(Receive Global Illumination) 包含两个选项:

  • 光照贴图:如果游戏对象是应直接烘焙到光照贴图中的静态对象,请选择此选项。这非常适合较大的对象或属于环境一部分的对象(如墙壁、地板或大型道具)。游戏对象将接收全局光照(GI)并将其直接贡献给光照贴图。

  • 光源探针光探针存储有关光线如何穿过场景中空间的信息。在给定空间中排列的光源探针集合可以改善移动对象的光照和该空间内的静态LOD场景。更多信息
    请参阅术语表
    :将此选项用于不需要直接烘焙到光照贴图中的较小、动态或详细的对象。游戏对象将从附近的光照探针接收GI,同时仍为周围的光照贴图提供GI。这有助于优化光照贴图的使用,并降低小道具或移动物品等对象的烘焙成本。

当游戏对象被标记为 GI 贡献者时,该对象可以接收光线并将其反射到其他表面。为确保反射表面上的照明正确,请将对象包含在反射探针(Reflection Probes一个渲染组件,可捕获周围环境的各个方向的球形视图,就像摄像机一样。然后,捕获的图像将存储为立方体贴图,可供具有反射材质的对象使用。更多信息
请参阅术语表
要捕获此反射光照信息,请执行以下作:

  1. 选择游戏对象后,转到检查器窗口中的游戏对象标头,然后找到静态编辑器标志
  2. 展开 静态(Static) 下拉菜单以显示其他选项。
  3. 启用 静态反射探针(Reflection Probe Static)。这可确保游戏对象被视为反射探针的静态对象,这意味着它将包含在立方体贴图六个方形纹理的集合,可以表示环境中的反射或几何体后面绘制的天空盒。这六个正方形形成了一个围绕物体的假想立方体的面;每个面表示沿世界轴方向(上、下、左、右、前和后)的视图。更多信息
    请参阅术语表
    由反射探针捕获。

分辨率 - 检查场景光源属性

检查场景光源的属性,检查它们是否正确设置为对全局光照(GI)做出贡献。

仅混合和烘焙光源Mode 属性设置为 Baked 的光源组件。Unity 在运行时之前预先计算烘焙光源的光照,并且不会将它们包含在任何运行时光照计算中。更多信息
请参阅术语表
可以为烘焙 GI 做出贡献。要确保场景中的光源处于正确的模式,请选择一个光源并检查其光源组件。它们的模式必须设置为 混合(Mixed)烘焙(Baked)。

检查其他属性,以查找可能影响场景光源对GI贡献能力的其他问题:

  • 颜色:深色的 GI 贡献较低或没有。为灯光选择明亮的颜色,并使用 强度(Intensity) 属性来增强或调暗它们。
  • 强度:强度越高,光线越亮。确保您的灯足够亮,以便做出有意义的地理标志贡献。
  • 间接乘数(Indirect Multiplier) :此属性控制间接反弹的强度。确保它未设置为零。否则,光线将对GI根本没有贡献。请注意,将此值设置为高于 1 将使场景中的光照不符合基于物理的渲染 (PBR) 标准。

分辨率 - 检查光照设置资产属性

光照(Lighting) 窗口中(Window > Rendering > Lighting),确保 光照设置资产(Lighting Settings Asset) 字段不为空。如果没有分配资产,请点击 新建光照设置(New Lighting Settings) 按钮。这将创建并分配资产,以便你可以在 光照(Lighting) 窗口中编辑属性。

完成此作后,请检查以下问题:

  • 确保启用 烘焙全局光照(Baked Global Illumination) 复选框。这支持烘焙 GI 计算。此复选框还将显示 光照模式(Lighting Mode) 下拉菜单。
  • 检查 最大弹跳数(Max Bounces) 值是否未设置为零。此值越高,光线在环境中反射的次数就越多。
  • 检查 间接强度(Indirect Intensity) 滑块是否未设置为零。将此滑块设置为零将减少场景中的所有间接光照。

分辨率 - 检查着色器和材质

自定义着色器可能会导致GI计算失败。要确定自定义着色器是否是原因,请使用编辑器的内置着色器来调试问题。

选择其中一个内置着色器:

  • 标准着色器:在内置渲染管线 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
    请参阅术语表
    .
  • 光照着色器:在通用渲染管线中可用。
  • 光照着色器:在高清渲染管线中可用。

如果 Unity 在切换到上述着色器之一后能够生成光照,则可能是您的自定义着色器导致了该问题。确保您的表面着色器内置渲染管线编写着色器的简化方法。更多信息
请参阅术语表
包含LIGHTMAP_ONshader 关键字,然后再检查 GI 计算。

有关如何使用着色器自定义烘焙GI输出的更多信息,请参阅自定义着色器如何在内置渲染管线中提供光照贴图数据

解决方法 - 其他可能的修复

如果前面的步骤无法解决问题,请按照其他步骤和提示进行作:

  • 确保光源未放置在场景几何体内。
  • 通用渲染管线资产中启用混合光照
  • 光照(Lighting) 窗口中选择不同的光照贴图后端。如果光照在使用渐进式GPU时烘焙失败,但在使用渐进式CPU烘焙时成功,这可能是由于硬件或驱动程序问题造成的。
  • 更新 GPU 驱动程序。请参阅 GPU 制造商的页面,了解适合您系统的正确驱动程序。对于 Linux 计算机,请参阅 Linux 驱动程序设置说明
  • 确保您的 GPU 满足最低要求,请参阅此讨论了解更多详细信息。
  • 清除 GI 缓存。要清除它,请导航到“首选项”>“GI 缓存”,然后选择“清理缓存”按钮。注意:这将删除场景中存在的所有照明数据,要求您重新生成照明。
漏光故障排除
对缺少镜面反射高光的材质进行故障排除