Skip to content

ZEngine — Mesh LOD System

Priority: Next-year plan Status: Design — no mesh-LOD asset schema, selection system, or cross-fade path is implemented. Depends on: imported/cooked mesh metadata, geometry streaming, material variants, culling, and GPU memory budgets.

Scope

Mesh LOD is a resource-selection policy: choose an available representation for a visible object based on an explicit error metric, then make sure that representation is resident and renderable. It is distinct from the grid pass's local line-density parameter and from generic distance culling.

The previous component, thresholds, import APIs, and renderer hooks were sketches. They must not be treated as current source contracts.

Required design

  • Define source/cooked representation: authored LODs, generated LODs, meshlets, bounds, error metrics, material compatibility, stable asset identity, and versioning.
  • Define selection metric (screen-space error or equivalent), hysteresis, per-view behavior, transition/cross-fade policy, camera cuts, occlusion interaction, and fallback when a preferred representation is not resident.
  • Couple the selection with geometry and texture streaming so a high-detail request cannot violate resource budgets or cause visible use-after-free.
  • Specify authoring/inspector validation, deterministic cook output, telemetry, and interaction with shadows, picking, collision, and baked lighting.

Acceptance gates

  • Selection is stable around thresholds and correct across viewport resize, FOV changes, camera cuts, multiple views, and missing representations.
  • Cook/load validates bounds and representation compatibility; scene/asset reload reconstructs residency safely.
  • Reference images and profiling demonstrate no popping beyond the declared transition policy and remain within measured frame/memory budgets.