什么是游戏中的 LOD?为开发者解释细节层次

what is lod in games cover

TL;DR

  • LOD(Level of Detail,细节层次)通过根据摄像机距离在高细节和低细节 3D 模型之间切换,帮助游戏提升性能。近处物体保留更多多边形,而远处物体则使用更简单的版本。
  • 游戏会使用不同的 LOD 系统,例如 Discrete LOD、HLOD、Nanite 和 Billboard LOD。其目标是在保持玩家可感知视觉质量的同时,降低渲染成本。
  • 对于 AI 生成的 3D 模型,创建经过优化的 LOD 版本很重要,因为原始 AI 网格通常过于复杂,不适合实时使用。干净的 LOD0–LOD2 模型有助于平衡细节与性能。

LOD(Level of Detail,细节层次)是一种用于游戏和实时 3D 图形的技术,它会根据模型与摄像机的距离自动改变模型的复杂度。靠近玩家的物体使用高细节网格,而远处物体会切换为三角形更少的简化版本,从而在几乎不损失可见质量的情况下提升性能。

你也可能在游戏鼠标参数中看到 LOD 指 Lift-Off Distance,但那是一个完全不同的概念。本文聚焦于 3D 图形中的 Level of Detail,解释 LOD 的工作方式、它为何重要,以及它如何帮助游戏在保持流畅帧率的同时高效渲染大型环境。

游戏中的 LOD(Level of Detail)是什么?

LOD(Level of Detail,细节层次)是一种在游戏过程中管理 3D 模型复杂度的渲染优化技术。游戏引擎不会始终以最大多边形数量渲染每个物体,而是会根据物体与摄像机的距离自动选择合适的模型版本。站在玩家面前的角色可能会使用高细节网格,而远处的同一角色则可能切换为三角形更少的简化版本。

LOD 存在的主要原因是 GPU 在每一帧都有有限的 triangle budget。现代游戏通常包含数百甚至数千个物体,如果将它们全部始终以最高质量渲染,成本很快就会变得过高。例如,一个拥有 100,000 个多边形的高模角色可能不是问题,但如果有 200 个 NPC 都使用同样的细节层次,就会产生大约 2000 万个多边形需要 GPU 处理。LOD 有助于在玩家最容易注意到的地方保持视觉质量,同时让这项工作负载维持在可控范围内。

大多数游戏会使用多个 LOD 级别。LOD0 表示原始高细节模型,用于物体最接近摄像机时。LOD1 通常会将几何体减少约 50%,在保留整体形状的同时移除不必要的细节。LOD2 会进一步降低多边形数量,通常约减少 75%,用于中等距离。LOD3 或 billboard LOD 则可能在物体极远时,用简单卡片或 2D 表现来替代该模型。

LOD 背后的一个关键概念是 polygon budget——系统每帧能够流畅渲染的三角形总数。不同平台的限制各不相同。移动游戏的目标可能是每帧约 100K 个三角形,独立 PC 游戏可能会控制在数十万到数百万个三角形之间,而 AAA 游戏则可根据场景和硬件处理数百万甚至更多。

LOD 不仅仅涉及几何体。纹理也会通过 MIP maps 使用一种类似的系统,称为 texture LOD。当物体靠近时,会显示高分辨率纹理;而在更远距离,则会加载低分辨率版本,以节省内存并提升性能。

现在你已经知道 LOD 是什么了,接下来看看引擎究竟是如何触发这些切换的。

what is lod in games what is lod level of detail in games

LOD 如何工作:切换、距离与屏幕空间

LOD 系统的工作方式,是判断何时用一个模型版本替换另一个版本。虽然看起来仅根据距离来切换 LOD 级别似乎很合理,但大多数现代游戏引擎使用的是一种更准确的度量方式:屏幕空间尺寸。这意味着引擎会检查一个物体占据屏幕的比例,并在该物体变得足够小、小到玩家难以察觉缺失细节时切换模型。

例如,一栋远处的大型建筑可能仍然会占据屏幕的相当大一部分,因此引擎会更长时间地将其保持在较高的 LOD 级别。而同样距离下的一个小木桶可能只占据几个像素,这就使引擎能够更早地将其切换到细节更少的 mesh。因此,相比使用简单的距离规则,屏幕空间百分比更有效,因为它考虑了物体实际的视觉重要性。

触发 LOD 变化通常有两种常见方法。基于距离的 LOD使用固定范围,例如在 50 米时切换到 LOD1,在 150 米时切换到 LOD2。它配置简单、所需计算更少,但并不总是与玩家实际看到的内容一致。基于屏幕尺寸的 LOD则改用屏幕覆盖比例,在不同摄像机角度和物体尺寸下都能提供更好的效果,不过它需要略多一些的运行时计算。

LOD 切换中的一个挑战是 LOD pop effect。这发生在玩家突然注意到模型从高细节变为简化版本时,从而产生令人分心的视觉跳变。游戏通常通过 dithered transitionscross-fade blending,或精心制作能保持与原始版本相似轮廓的低 LOD 模型等技术来减轻这个问题。

另一项重要技术是 hysteresis。如果没有它,位于 LOD 切换阈值附近的物体可能会随着摄像机轻微前后移动,在 LOD0 和 LOD1 之间快速来回切换。一个小的过渡缓冲区可以防止这种持续切换,并带来更平滑的体验。

LOD 设置通常按对象单独控制。在 Unreal Engine 中,每个 Static Mesh 都可以拥有独立的 LOD 屏幕尺寸阈值,用来决定每个版本何时出现。在 Unity 中,LOD Group 组件允许开发者为每个 LOD 级别定义相对于屏幕的过渡百分比。

不同游戏会采用不同的 LOD 系统架构——下面来看看它们是如何划分的。

what is lod in games how lod works switching distances and screen space

现代游戏中的 LOD 系统类型

现代游戏会根据项目规模、引擎和性能需求采用多种不同的 LOD 方案。虽然目标始终相同——在不牺牲可见质量的前提下降低渲染成本——但各系统实现这一目标的方式可能截然不同。

离散 LOD —— 经典方法

离散 LOD 是大多数游戏中使用的传统方法。美术人员会为同一个 3D 模型创建多个独立版本,例如 LOD0、LOD1、LOD2 和 LOD3,每个版本具有不同的多边形数量。引擎会根据距离或屏幕尺寸,在特定阈值处切换这些版本。

这种方法几乎受到所有主流游戏引擎的支持,并让美术人员能够精确控制每个版本的外观。然而,它需要手动工作,因为每个 LOD 网格都必须单独创建、优化和测试。

连续 LOD (CLOD) —— 实时简化

连续 LOD 采用了不同的方法:它不是在固定版本之间切换,而是在运行时动态降低网格复杂度。随着摄像机逐渐远离,系统会持续简化几何体,从而实现更平滑的过渡,避免明显的跳变。

它的优势在于优化更灵活、更渐进,但缺点是计算成本更高。由于实时网格简化可能开销较大,与传统的离散 LOD 系统相比,CLOD 在现代商业游戏中较少见。

分层 LOD (HLOD) —— 优化大型世界

分层 LOD 专为大型环境而设计,例如开放世界游戏。HLOD 不是优化单个对象,而是将相邻资源组——例如建筑、树木和道具——在远距离时合并为一个简化后的单一网格。

这能显著减少 draw call 的数量。例如,从远处观察时,数百个独立建筑可能会被一个经过优化的 HLOD 网格所取代。Unreal Engine 4 和 5 支持 HLOD 工作流,包括与用于大规模世界的 World Partition 集成。

Nanite (Unreal Engine 5) —— 虚拟化几何体

Nanite 是 Unreal Engine 5 的虚拟化几何体系统,它改变了开发者处理高细节网格的方式。Nanite 不再依赖传统的手动创建 LOD 层级,而是自动流送并渲染当前视图所需的三角形,精细到像素级细节。

对于许多静态网格来说,Nanite 可以替代传统的 LOD 工作流,但它并不是通用解决方案。它并不支持所有资源类型,包括 skeletal meshes 和某些 masked materials,因此传统优化技术仍然是必要的。

Impostor / Billboard LOD —— 成本最低的选项

Impostor LOD 使用一个简单的 2D 卡片或 billboard,并贴上原始 3D 对象的烘焙图像。从远处看,玩家看到的似乎是一个细节丰富的对象,但引擎实际渲染的只是轻量级纹理,而不是完整网格。

这种方法尤其适用于树木、远处建筑、人群以及背景对象,因为这些场景中的几何细节几乎不可见。它能在几乎不影响视觉效果的情况下带来显著的性能收益。

一旦你理解了这个系统,下一个问题就是:你究竟该如何实际构建 LOD 模型?

what is lod in games types of lod systems in modern games

LOD 模型是如何创建的

创建 LOD 模型的过程,就是为同一个资产制作多个具有不同几何复杂度的版本。其目标并不只是简单地减少多边形,而是在降低渲染成本的同时,从玩家视角保持对象在视觉上的一致性。开发者可以根据项目需求手动创建 LOD、自动生成 LOD,或使用 AI 辅助工作流。

手动创建 LOD —— 最大控制力

传统方法首先会创建一个具有最高几何细节级别的 LOD0 模型。然后,艺术家会复制该模型,并使用 Blender、Maya 或 3ds Max 等软件中的工具,通过手动减少多边形来创建更低细节的版本。减少网格之后,艺术家通常还会通过删除不必要的顶点、修复损坏的法线,并检查拓扑是否仍然可用,来清理结果。

这种方法提供了最高程度的控制,因为艺术家可以精确决定在每个距离下哪些细节应该消失。像螺丝、接缝或表面装饰这样的小特征可以被移除,同时保留重要的整体形状。不过,手动创建 LOD 也是最耗时的方法,尤其是在包含数百个资产的大型游戏项目中。

自动抽取 —— 更快,但可预测性更低

许多 3D 应用都包含自动网格简化工具。Blender 的 Decimate modifier、Maya 的 Reduce 和 3ds Max 的 ProOptimizer 都可以通过折叠不必要的几何体,快速生成模型的低多边形版本。

自动抽取对于道具和硬表面对象很有用,因为它只需很少的工作量就能生成可接受的结果。不过,对于角色和生物等复杂有机模型,它可能会产生混乱的拓扑、不均匀的边流,或不希望出现的形状变化。艺术家往往仍需要在之后审查并清理生成的网格。

基于引擎的 LOD 生成

现代游戏引擎也可以自动创建 LOD 版本。例如,Unreal Engine 为 Static Mesh 资产提供了内置的 Auto LOD 工具。这些系统使用 Quadric Error Metrics 等算法来简化几何体,同时尽量保留原始形状。

引擎生成的 LOD 对于快速优化大型资产库来说非常方便。它们对于简单对象和环境尤其有效,但对于角色或需要精确变形的资产,通常可靠性较低。

AI 辅助 LOD 创建

AI 工具正逐渐成为生成优化网格的另一种选择。例如,Tripo AI Smart Mesh 可以根据单张图像或文本提示创建更干净、更面向游戏的拓扑,并可调整目标面数。这使它在创建同一资产的不同版本时很有用,例如高细节的 LOD0 模型,以及更轻量的 LOD1 或 LOD2 变体。

对于还需要进一步手动编辑的艺术家来说,AI 生成的以四边形为主的拓扑,也可以为 Blender 和其他 DCC 工具中的重拓扑工作流提供一个更干净的起点。

创建 LOD 模型时,最重要的规则是保持 轮廓。较低级别的 LOD 不需要保留每一个小细节,但整体外轮廓和可识别的形状应当保持一致。内部细节可以消失,但对象在任何距离下都应当仍然易于辨认。

在保存 LOD 设置之前,还有一个值得理解的技术参数:LOD bias。

what is lod in games how lod models are created

LOD 偏置:它是什么,以及何时调整

LOD 偏置是一项用于控制游戏引擎在不同细节层级之间切换激进程度的设置。与其逐个修改每个资产的 LOD 设置,LOD 偏置更像是一个全局乘数,会将所有 LOD 过渡点整体上移或下移。它通常用于在不同硬件条件下平衡视觉质量与性能。

正 LOD 偏置会让较低质量的 LOD 模型更早出现。这意味着引擎会更早切换到更简单的网格,从而降低 GPU 负载并提高帧率。负 LOD 偏置则会让较高质量的模型保持可见更久,从而提升画面质量,但也会增加渲染成本。简单来说:偏置越高 = 性能越好,偏置越低 = 视觉效果越好。

大多数引擎都提供了调整 LOD 偏置的方法。在 Unreal Engine 中,开发者可以通过 r.LODDistanceFactor 控制台变量或可扩展性选项等设置来控制它。在 Unity 中,对应的设置是 QualitySettings.lodBias,它用于控制高细节模型在多远距离内保持激活状态。许多 PC 游戏也会通过 LOD QualityObject DetailView Distance 等图形选项提供类似控制。

合适的 LOD 偏置取决于目标硬件和性能目标。对于受限于 GPU 性能的系统,将偏置提高到大约 1.5–2.0 有助于通过更早切换到更简单的模型来降低渲染负载。对于以视觉质量为优先的高端系统,将偏置降低到大约 0.5–0.75 可以让高细节模型保持可见更久。默认值通常是 1.0,提供一种较为均衡的折中方案。

一个常见问题是:“我应该关闭 LOD 吗?” 禁用 LOD 实际上会强制引擎在所有地方都使用 LOD0 模型,这对于截图、电影级画面捕捉或视觉对比可能有用。然而,对于实际游戏过程来说,这通常是个糟糕的主意,因为开放世界场景中可能包含成千上万个对象。移除 LOD 优化会显著增加 draw calls,并导致严重的性能下降。

那么,LOD 偏置应该高还是低?并不存在放之四海而皆准的最佳设置。较高的数值会提升 FPS,但会减少远处细节;较低的数值会改善视觉效果,但会消耗更多性能。最佳做法是以目标帧率为基准进行测试,并根据你想交付的平台和体验来调整该设置。

既然传统 LOD 已经讲清楚了,接下来我们来看看这个领域正在积极解决的一个问题:AI 生成资产的 LOD。

what is lod in games lod bias what it is and when to adjust it

常见的 LOD 错误(以及如何避免它们)

即使拥有设计良好的 LOD 系统,设置不当仍然会造成可见的画质问题或不必要的性能开销。LOD 的目标并不只是减少多边形——而是在保持资源视觉一致且高效的同时降低复杂度。

  1. 过度激进的简化

最常见的错误之一就是过快地删减过多几何体。如果 LOD1 模型移除了太多多边形,重要特征可能会消失,轮廓也可能被破坏。手指可能会消失,细薄部件可能会塌陷,曲面形状也可能明显失真。

一个好的经验法则是避免在层级之间进行极端缩减。典型的 LOD 过渡通常以大约 50–60% 的多边形缩减为目标,而不是直接跳到 90% 的缩减。渐进式优化通常会带来更好的视觉效果。

  1. 忽视轮廓

细小的表面细节在远处可以消失,但物体的整体外形必须仍然可辨识。角色的身体形状、车辆的外部轮廓或建筑的结构,在切换到较低 LOD 后仍应保持正确观感。

始终要从玩家实际会看到的摄像机角度测试 LOD 模型。一个在视口中看起来可以接受的模型,在实际游戏过程中仍然可能显得不对劲。

  1. 使用错误的切换距离

对每个物体都应用相同的 LOD 距离,也是另一个常见错误。大型车辆和一小片草不应该在相同距离切换细节层级,因为它们对屏幕的影响完全不同。

使用屏幕尺寸百分比而不是固定距离值,可以在不同尺寸的物体之间得到更一致的结果。

  1. 在高密度场景中跳过 HLOD

如果没有 Hierarchical LOD(HLOD),大型环境可能会出现问题。在开放世界场景中,数百个远处建筑可能仍然会产生数百次独立的 draw call,而不是被合并为一个优化后的 mesh。

HLOD 通过将远处物体合并为更简单的表示来减少这种开销。

  1. 忽略碰撞 LOD

视觉 LOD 可能已经过优化,但它的碰撞 mesh 仍然保持着不必要的复杂度。这会浪费处理能力,尤其是对于远处物体而言。

对于低细节物体,可使用盒体或球体等简化的碰撞形状;或者当物体距离过远、无法交互时,直接完全禁用碰撞。

  1. LOD 层级之间的 UV 不匹配

LOD0 和 LOD1 之间不同的 UV 布局会在过渡期间造成纹理接缝、拉伸或 atlas bleeding。为避免这种情况,应在简化 mesh 之前完成 UV 映射,并确保所有 LOD 版本都保持兼容的纹理布局。

一个仍在持续演进的场景是 AI 生成模型的 LOD——它的工作流与手工构建的资源不同。

what is lod in games common lod mistakes and how to avoid them

AI 生成 3D 模型的 LOD

AI 生成的 3D 模型为 LOD 工作流程带来了新的挑战。传统游戏资产通常在创建时就考虑了优化,但 AI 生成器往往优先追求最大程度的细节。其结果通常是一个保留了表面信息的高多边形网格,但还没有为实时渲染做好准备。一些 AI 生成的模型可能包含数十万甚至数百万个三角形,若将其直接导入游戏引擎,很快就会导致帧率下降。

一个常见错误是将 AI 生成的 HD Model 当作可直接使用的成品游戏资产。实际上,该模型应经过优化流程,为不同的观察距离创建不同的 LOD 版本。

借助 Tripo AI Studio 的一个实用工作流程如下:

  1. 生成基础模型

首先使用 Image-to-3DText-to-3D 创建你的资产。这会得到初始的 3D 概念模型,之后可根据你的目标使用场景进一步完善。

what is lod in games lod for ai generated 3d models
  1. 使用 Smart Mesh 创建你的 LOD0

对于实时应用,请选择 Smart Mesh 而不是 HD Model。Smart Mesh 专为游戏工作流设计,可生成更干净、经过优化的拓扑,默认约为 5,000 个面。这个版本可以作为你的 LOD0——当对象最接近摄像机时使用的最高质量版本。

  1. 生成更轻量的 LOD 版本

要创建 LOD1 和 LOD2,请生成目标面数更低的额外 Smart Mesh 版本。例如,你可以创建一个约 2,000 个面的 LOD1 版本,以及另一个约 500 个面的 LOD2 版本。每个优化版本都可以快速生成,并在游戏中的不同距离下使用。

  1. 导出并集成到你的引擎中

以适合你的流程的格式导出模型,例如用于 Unity 的 GLB 或用于 Unreal Engine 的 FBX。在 Unreal Engine 中,导入时启用 Import LODs,即可将多个网格合并为一个带有内置 LOD 级别的 Static Mesh。

what is lod in games lod for ai generated 3d models 2

理解 HD ModelSmart Mesh 之间的区别也同样重要。HD Model 最多可包含数百万个多边形,更适合用于 3D 打印、特写渲染和电影级制作。Smart Mesh 则是为注重性能的交互式应用而设计的。

对于 Unreal Engine 5 用户,还有另一种选择:Nanite。如果你的资源是静态网格,并且目标平台支持它,你可以导入高细节模型并启用 Nanite,让其自动处理虚拟化微多边形渲染。不过,Nanite 并不能全面替代 LOD——它在移动设备、较旧硬件以及动画骨骼网格方面都存在限制。

还有疑问吗?以下是我们最常被问到的问题。

what is lod in games lod for ai generated 3d models 3

常见问题

LOD 在电子游戏中是什么意思?

LOD 代表 Level of Detail。它是电子游戏中的一种渲染优化技术,游戏引擎会根据摄像机距离在 3D 模型的不同版本之间自动切换。近处物体使用高细节网格,远处物体则使用更简化的版本,从而降低 GPU 工作负载,并在几乎不影响可见画质的情况下提升性能。

LOD 如何影响游戏性能?

LOD 通过减少 GPU 每帧需要处理的多边形数量和绘制调用次数来提升游戏性能。通过用更简化的版本替换远处的高细节模型,LOD 能降低渲染负载、提高帧率,并帮助大型开放世界场景流畅运行,同时不会牺牲明显的视觉质量。

游戏通常有多少个 LOD 级别?

大多数游戏对静态物体会使用大约 3–5 个 LOD 级别,通常标记为 LOD0–LOD4。LOD0 是细节最高的版本,而后续级别会对更远处的物体逐步减少多边形数量。角色通常使用更少的级别(约 2–3 个),而小型道具可能只需要两个。对于非常远的物体,游戏可能会使用 Billboard LODHLOD,以简化表示替换复杂场景。

可以在游戏设置中禁用 LOD 吗?

大多数游戏不会提供直接的 “disable LOD” 选项,但诸如 Object DetailView DistanceLOD Quality 之类的图形设置可以调整 LOD 切换的激进程度。更高的设置会让高细节模型保持可见更长时间,而通过开发者命令完全禁用 LOD 则可能会显著降低性能,尤其是在大型开放世界场景中。

我的鼠标上的 LOD 应该设置成什么?

对于游戏鼠标来说,LOD 指的是 Lift-Off Distance,而不是 Level of Detail。较低的 LOD(约 1–2 mm)通常更适合竞技游戏,因为当你抬起鼠标时,传感器会更快停止追踪,从而防止在重新定位时出现不必要的光标移动。它与 3D 图形中的 LOD 设置无关。

结论

LOD 是让现代游戏流畅运行的那些“隐形技术”之一。正因为有它,大型开放世界环境才不会让 GPU 不堪重负,移动游戏才能显示数百个物体,而玩家也很少会注意到后台正在发生的优化过程。

如果你正在开发游戏,尽早使用合适的多边形目标、干净的轮廓以及正确的 bias 设置来配置 LOD,可以在后期节省大量优化时间。

需要适配你的工作流、具备优化拓扑结构的游戏可用资源吗?Tripo AI Studio 中生成你的第一个模型 → 通过 Tripo AI pricing** →** 探索可用功能和选项

分享文章

用 3D 生成万物

点击下方,加入数百万 3D 创作者的行列。体验超高保真模型生成与一流的 PBR 贴图。