WebGPU Renderer
5,000 dynamic lights in a browser, three ways
WebGPU, TypeScript, WGSL · Sep – Oct 2025
- 53× faster than naive forward rendering
- 497 → 9.3 ms per frame at 5,000 lights
- 3.5× faster than Forward+
Three real-time renderers for 5,000+ dynamic point lights in the Sponza scene: naive forward, Forward+, and clustered deferred.
- Light clustering in compute shaders: a 16×9×24 grid with exponential depth slices and sphere–AABB culling
- G-buffer with 3 render targets for two-pass deferred shading
- 53× faster than naive rendering (497 ms to 9.3 ms at 5,000 lights) and 3.5× faster than Forward+, measured by an automated benchmark across 30 configurations