UPL9-3——LOD

LOD

LOD(Level of Detail,细节层次)

LOD 的核心目的:减少远处物体的几何复杂度(顶点,三角形数量),降低 GPU 顶点处理压力,让场景在视觉上几乎无损的前提下提升性能

具体好处包括:

  1. 提升性能

    远处的物体在屏幕上只占很少像素,用高模浪费算力,LOD 可以替换成低模,让 GPU 处理更轻松

  2. 节省显存和带宽

    高模 → 低模 → Billboard 加载和显存压力逐步减轻

  3. 兼顾画质与性能

    近处依旧报错高质量,远处用简化版本,玩家几乎察觉不到

说人话:LOD 的主要作用就是动态平衡画质和性能

LOD 的使用

Unity 提供了 LOD Group 组件来管理 LOD

使用步骤:

  1. 准备好模型

    让美术输出同一个物体的多个精度版本模型(如 LOD0、LOD1、LOD2)
    或者使用 Mesh Simplification(网格简化算法)工具自动生成低精度模型

  2. 创建一个空物体,添加 LOD Group 组件,将多个精度版本模型作为其子对象

    对 LOD Group 组件进行设置关联

    假设我们准备了胶囊体高模,球体中模,立方体低模,你需要将这些模型的渲染器分别关联到 LOD Group 的不同等级 (LOD X) 的 Renderers 上

    image

    然后就可以看到效果了(从近到远,依次从高模变成低模,最终被剔除):

    imageimageimage​​image

LOD Group 参数

image

  • Fade Mode:控制 LOD 切换时是否做过渡

    image

    • None(无过渡): 直接切换,没有过渡效果

      性能最好,因为不需要额外渲染,
      缺点是可能出现“跳变”感,尤其是当物体在切换点来回抖动时

    • Cross Fade(渐变过渡): Unity 会在切换区间内同时渲染

      两个 LOD 的模型,旧 LOD 逐渐透明,新 LOD 逐渐显现
      最终实现一个“淡入淡出”的效果,过渡平滑,几乎察觉不到 LOD 切换
      由于在过渡阶段要同时渲染两个模型,会给 GPU 带来负担

      调整过渡区间需要在各个 LOD 等级的 Fade Transition Width 处调节

    • Speed Tree(植被系统): 专门为 Unity 的 SpeedTree 植被系统设计的渐变模式

      逐步混合顶点、枝叶信息,在切换过程中,树木的枝叶会更自然地过渡,
      不会出现“透明闪烁” 针对树木、植被表现更好
      只能用于 SpeedTree 资源,无法用于普通 Mesh

  • Animate Cross-fading:会让淡入淡出的过程随着时间平滑播放动画,而不是仅仅基于相机位置的阈值(仅在 Fade Mode 不为 None 时出现)

    勾选后会更快速更直接切换模型,不会出现摄像机停在某个阈值点让两个模型都显示的情况

  • 拖动条:预览不同物体占屏幕比值的LOD等级,拖动可预览不同距离显示效果

    image

    上面的百分比(100%、60%、30%、10%)表示屏幕占比阈值
    (一般是基于物体的包围盒在屏幕上投影的高度,去和 屏幕总高度 做比值)
    比如:当物体在屏幕上大小 < 30% 时,从 LOD1 切换到 LOD2
    拖动摄像机图标可以看到切换效果

    image

  • 警告:Active LOD bias is 2.0. Distances are adjusted accordingly

    表示当前项目里启用了 Quality Settings → LOD Bias(LOD 偏移)
    值越大,切换到低 LOD 的时机越远(即更久保留高模)

    image

  • Recalculate Bounds:重新计算 LOD 的包围盒(建议模型设置完毕变时点击)

    LOD 切换基于物体在屏幕上的包围盒大小,模型改变或者缩放后需要点这个

  • Recalculate Lightmap Scale:重新计算光照贴图缩放参数

  • Object Size:物体在计算 LOD 时的参考大小(默认自动算出)

  • Reset Object Size:重置物体在计算 LOD 时的参考大小为1,同时修改 Transition

  • LOD X:各个阶段的 LOD 使用的网格渲染器信息

    • Transition:表示当物体在屏幕上占比 > 多少百分比 时使用它

    • Set to Camera:根据当前相机位置,计算出的 LOD 的切换距离,快捷设置

    • Fade Transition Width:渐变切换的过渡区间宽度(仅在 Fade Mode 不为 None 且不勾选 Animate Cross-fading 时出现)

      • 值越大 → 过渡区间越宽,淡入淡出的时间/距离越长,看起来更平滑
      • 值越小 → 过渡区间越窄,几乎是瞬间切换
    • Renderers:指定这一层级使用的 MeshRenderer

      后面的三角形数量信息: 表示当前网格有多少个三角形