Virtual Mesh 02: Triangle Culling
This week I have finished implementing compute-based Triangle Culling. Instead of relying on hardware to drop small or out of frustum primitives, the meshlet pipeline allows this to be done before rendering has even started. This reduces the pressure on both programmable and fixed-function vertex processing units, which in turn may give a nice performance win.
Virtual Mesh currently supports the following methods of per-primitive culling:
- Backface culling.
- Culling off-screen triangles.
- Culling triangles in front of the near frustum plane.
- Small triangle culling: dropping triangles that wouldn’t produce any fragments.
Performance-wise, this results in a whopping 67% speed-up for shadows and 15% for the main view. While my solution benefits from triangle culling on this particular hardware, the outcome is dependent on mesh shader usage, GPU vendor/architecture, and many other factors.
Other Posts
01: Occlusion Culling < – > Coming Soon