Level of detail (LOD)
Simpler models when things are far away.
A 50,000 triangle statue 200 m away covers a few pixels. LOD swaps in simpler versions of a mesh as it gets smaller on screen, and eventually a flat impostor or nothing. Switching by screen size (not raw distance) and fading or adding hysteresis stops visible popping.
Try this: Fly through the forest and dodge trees. With LOD off every tree costs 5,120 triangles, even tiny far ones, and it stutters. Turn LOD on, then colour by level to see far trees go simple.
LOD off: tiny far-away trees still cost 5,120 triangles each. Feel the stutter.
Prompt bit
Works for 2D or 3D in any engine (Unity, Unreal, Godot, web). Paste the short one for a quick fix, or the detailed one when you want it done properly.
Add LODs to detailed meshes: 3 or 4 levels at about 50% fewer triangles each, switch by screen-height percentage rather than distance, crossfade over 0.25 s or add hysteresis so objects at the threshold never flicker, and cull entirely below 1% of screen height.
Add level of detail to 3D meshes (Unity LOD Group, Unreal static mesh LODs or Nanite, Godot automatic mesh LOD and visibility ranges). Generate 3 to 4 LODs with about 50% fewer triangles each (engine auto-LOD, Simplygon, Blender Decimate), keeping silhouettes. Switch by screen-relative size, not distance, so FOV and resolution are handled. Typical thresholds: LOD0 above 40% screen height, LOD1 above 15%, LOD2 above 5%, culled under 1%. Use crossfade (dithered) or hysteresis to hide pops. For far forests use impostors or billboards. Apply LOD to skeletal meshes too (fewer bones) and reduce animation update rate far away. Verify with an LOD colour visualization.
Where it's used
- Open worlds: terrain, trees and buildings
- Racing games: track-side detail at speed
- Strategy games: zoomed-out armies
- Shooters: characters at long range
- Mobile 3D: keeping triangle counts low
Common mistakes
Switching by world distance so changing FOV breaks it, LODs that change the silhouette and pop visibly, no hysteresis so objects flicker at the threshold, LODs only on props and not on characters, and no culling for tiny objects.
Writing this with an AI assistant? See our best AI coding assistants for game developers.
Missing a concept? Request one.



