Same car, three renderers

One car in three.js WebGL, three.js WebGPU and webgi. All three use the same model, HDR, camera, tone mapping, reflections, ambient occlusion, bloom and anti-aliasing. Open one, drag to orbit, and switch renderers at the top. The side panel counts every GPU pass of the frame in your browser.

Desktop Chrome or Edge works best. The three.js WebGPU tab needs WebGPU. Keep the tab visible.

The car in three.js WebGL

three.js WebGL

r186 · EffectComposer + SSRPass, GTAOPass, UnrealBloomPass, SMAA
The car in three.js WebGPU

three.js WebGPU

r186 · RenderPipeline + TSL ssr(), ao(), bloom(), smaa()
The car in webgi

webgi

threepipe 0.5.1 + webgi plugins · G-buffer, SSAO, SSR, bloom, TAA

What we counted (one moving frame, 1920×1080)

three.js WebGLthree.js WebGPUwebgi
Scene renders (full + part)4 + 11 + 22 + 1
Full-screen passes264414
Draw calls366134179
Camera still366 every frame134 every frame32 frames, then 0

Apple M4 Pro, Chrome 153, real WebGPU on Metal. Counts, not timings. Full pass lists with names: passes-r186.json. 20 of the 44 WebGPU full-screen passes build mip chains for the glass (transmission).

Check it yourself

webgi plugins for threepipe go open source soon. Built on threepipe.