Explore raising LOD factors and related detail settings (triangle throughput rarely limits us) #171

Open
opened 2026-09-29 17:31:04 +00:00 by sky_line · 0 comments
Owner

Slipstream's GPU-driven renderer is rarely limited by triangle count: busy scenes are bound by compute (shadows, cull, RT) and by the CPU. LL's LOD defaults and caps were tuned for the GL pipeline, where every triangle cost a draw call and CPU-side rebuild work. We can probably show much more geometric detail for little or no frame cost.

Settings to review

  • Object LOD:
    • RenderVolumeLODFactor: default, and the slider range and max. LL caps the UI at 2.0 (4.0 in debug); Firestorm users often run 4.
    • The GPU cull's LOD select, which uses lod_factor * radius / dist through detailFromTan in clean_cull.comp. Check its thresholds.
    • Mesh LOD: MeshLODBoostFactor, and whether we can prefer higher mesh LODs by default. Balance that against the extra download and memory from fetching more LOD levels.
  • Avatars: RenderAvatarLODFactor, RenderAvatarPhysicsLODFactor, RenderAvatarMaxNonImpostors (no impostors on VK yet, #31).
  • Terrain and vegetation: RenderTerrainLODFactor, RenderTreeLODFactor (trees are coming in #20), RenderFlexTimeFactor / flexi detail once #25 lands.
  • Distance: default RenderFarClip per quality level, and the sim-surround / far-object detail.
  • Quality presets: the feature-table values each graphics level writes for these (see the #151 audit).

Method

  1. Pick 2–3 busy test scenes and a mid-range GPU datapoint (e.g. the 3060/5800X tester) as well as the dev machine.
  2. Sweep each factor (1, 2, 4, 8) with RenderVKSectionLog + RenderVKGpuTimers. Record frame time, g_prepass / g_pass1 / c_shadows / c_cull, VRAM (geometry and mesh slots) and mesh download volume.
  3. Find where each factor stops improving visibly, or starts costing more than ~0.5 ms or significant memory.
  4. Set new defaults per quality level, and raise the UI caps where it's safe. Watch 8 GB cards (#164) and low-end tiers (#98).

Considerations

  • Higher LOD means more mesh LOD downloads and mesh-slot VRAM. The cost is likely memory and bandwidth rather than GPU time.
  • Shadow cascades draw casters at the main-view LOD, so shadow cost scales too.
  • Keep low-end presets conservative (#98).
Slipstream's GPU-driven renderer is rarely limited by triangle count: busy scenes are bound by compute (shadows, cull, RT) and by the CPU. LL's LOD defaults and caps were tuned for the GL pipeline, where every triangle cost a draw call and CPU-side rebuild work. We can probably show much more geometric detail for little or no frame cost. ## Settings to review - **Object LOD:** - `RenderVolumeLODFactor`: default, and the slider range and max. LL caps the UI at 2.0 (4.0 in debug); Firestorm users often run 4. - The GPU cull's LOD select, which uses `lod_factor * radius / dist` through `detailFromTan` in clean_cull.comp. Check its thresholds. - Mesh LOD: `MeshLODBoostFactor`, and whether we can prefer higher mesh LODs by default. Balance that against the extra download and memory from fetching more LOD levels. - **Avatars:** `RenderAvatarLODFactor`, `RenderAvatarPhysicsLODFactor`, `RenderAvatarMaxNonImpostors` (no impostors on VK yet, #31). - **Terrain and vegetation:** `RenderTerrainLODFactor`, `RenderTreeLODFactor` (trees are coming in #20), `RenderFlexTimeFactor` / flexi detail once #25 lands. - **Distance:** default `RenderFarClip` per quality level, and the sim-surround / far-object detail. - **Quality presets:** the feature-table values each graphics level writes for these (see the #151 audit). ## Method 1. Pick 2–3 busy test scenes and a mid-range GPU datapoint (e.g. the 3060/5800X tester) as well as the dev machine. 2. Sweep each factor (1, 2, 4, 8) with `RenderVKSectionLog` + `RenderVKGpuTimers`. Record frame time, `g_prepass` / `g_pass1` / `c_shadows` / `c_cull`, VRAM (geometry and mesh slots) and mesh download volume. 3. Find where each factor stops improving visibly, or starts costing more than ~0.5 ms or significant memory. 4. Set new defaults per quality level, and raise the UI caps where it's safe. Watch 8 GB cards (#164) and low-end tiers (#98). ## Considerations - Higher LOD means more mesh LOD downloads and mesh-slot VRAM. The cost is likely memory and bandwidth rather than GPU time. - Shadow cascades draw casters at the main-view LOD, so shadow cost scales too. - Keep low-end presets conservative (#98).
sky_line added this to the Slipstream project 2026-10-06 15:04:15 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#171
No description provided.