Modern Rendering Culling Techniques
·2026.04.19 16:54
Key point
A rundown covering everything from distance, frustum, and occlusion culling to GPU-driven cluster culling.
1 / 2
Details
Culling is a core optimization in rendering that reduces work that doesn't need to be done at all.
- Basic culling: distance, backface, and frustum culling are the cheapest and most widely used.
- Distance culling: excludes distant objects, but should be combined with LOD, dither fade, and impostors to reduce pop-in.
- Backface culling: skips the back faces of closed meshes to reduce rasterization/fragment cost.
- Frustum culling: removes objects outside the camera's view using bounding spheres/AABBs.
Occlusion culling removes targets hidden behind other objects.
- Hardware Occlusion Query lets the GPU report the number of visible samples, but there's latency in checking the results.
- Software Occlusion Culling has the CPU rasterize a low-resolution depth buffer for immediate judgment, but it costs CPU time.
- Hi-Z uses a depth pyramid to conservatively test for occlusion, and it forms the foundation of modern GPU-driven occlusion.
- Two-pass occlusion culling first filters using the previous frame's Hi-Z, then re-checks a second time to recover newly visible objects.
Other practical techniques are covered as well.
- Screen size culling: judges based on screen occupancy area rather than world distance.
- PVS: precomputes visible space per region to reduce runtime cost.
- Portal culling: progressively narrows down interior space based on doors/passages.
Finally, moving on to GPU-driven rendering, a compute shader performs culling and packs only the surviving objects into an indirect draw buffer. This way, the CPU doesn't need to iterate over every object, and finer-grained culling becomes possible at the meshlet/cluster level.