Version: 2023.1
Example: creating a quad
LOD 组

网格的细节级别 (LOD)

本页包含有关网格的细节级别 (LOD) 的信息。有关着色器 LOD 的信息,请参阅 SubShader LOD 值

Level of detail (LOD) is a technique that reduces the number of GPU operations that Unity requires to render distant meshes.

当场景中的某个游戏对象距离摄像机很远时,与距离摄像机很近的游戏对象相比,可以看到的细节将会减少。但默认情况下,Unity 会使用相同数量的三角形来渲染两个远近不同距离的游戏对象。这可能会浪费 GPU 运算资源,从而影响场景中的性能。

LOD 技术允许 Unity 根据与摄像机的距离来相应减少为游戏对象渲染的三角形数量。要使用此技术,游戏对象必须具有大量网格,这些网格的几何体的细节级别逐渐降低。这些网格称为 LOD 级别。游戏对象离摄像机越远,Unity 渲染的 LOD 细节级别越低。此技术减轻了这些远处游戏对象给硬件带来的负担,因此可以提高渲染性能。

要了解如何在 Unity 中使用 LOD,必须首先了解什么是 LOD 级别以及它们的工作方式。

LOD levels

LOD 级别是一个网格,用于定义 Unity 为游戏对象的几何体渲染的细节级别。当游戏对象使用 LOD 时,Unity 将根据游戏对象与摄像机的距离来显示该游戏对象的相应 LOD 级别。

每个 LOD 级别都存在于单独的游戏对象中,每个游戏对象都有一个显示该 LOD 级别的 Mesh Renderer 组件。对于最低级别的细节,可以使用公告牌资源 (Billboard Asset),这种情况下 Unity 将显示公告牌资源而不是 3D 网格。Unity 根据需要显示和隐藏这些游戏对象。LOD 级别必须是相关的游戏对象的子游戏对象。

下图显示了 LOD 级别如何根据与摄像机的距离而变化。

处于 LOD 0 时,摄像机显示包含大量小三角形的网格。处于 LOD 1 时,摄像机显示的网格中三角形的数量大幅减少,而且三角形的大小大幅增大。
处于 LOD 0 时,摄像机显示包含大量小三角形的网格。处于 LOD 1 时,摄像机显示的网格中三角形的数量大幅减少,而且三角形的大小大幅增大。

在 Unity 中设置 LOD

要使用 LOD,必须有一个包含 LOD Group 组件的游戏对象。LOD Group 组件提供了相应控件来定义 LOD 在此游戏对象上的行为方式,并会引用 Unity 为每个 LOD 级别显示或隐藏的游戏对象。请参阅 LOD 组 (LOD Group) 以了解有关该组件中的属性的详细信息。

可以通过两种方法在 Unity 中设置 LOD:

  • 可以在外部 3D 建模应用程序中配置 LOD 级别,然后 Unity 可以自动为您创建和配置所需的游戏对象和组件。有关正确配置的详细信息,请参阅导入 LOD 网格
  • 可以手动创建带有 LOD Group 组件的游戏对象,并手动配置 LOD 级别。

配置 LOD 级别

要手动配置 Unity 显示每个 LOD 级别时依据的摄像机距离,请使用 LOD Group 组件的选择栏

LOD Group 组件最多接受八个 LOD 级别。LOD 0 最接近摄像机,因此是细节级别最高的 LOD 级别。

项目级别的 LOD 设置

Quality settings 窗口中,可以配置影响项目中所有游戏对象的 LOD 设置。

有两个 LOD 设置可供配置:

  • Maximum LOD Level:从构建中排除高于指定 LOD 级别的网格。
  • LOD Bias:决定了处于阈值距离时选用更高还是更低的 LOD 级别。
Example: creating a quad
LOD 组