Post

WebGPU Clustered Deferred Renderer

WebGPU, TypeScript. Fast real-time lighting in the browser. And an educational read-me!

WebGPU Clustered Deferred Renderer

See my GitHub Repo…

This is a clustered deferred renderer implemented in WebGPU, an explicit GPU API for the web.

The goal of this 1.5-week project was to:

  • Learn the WebGPU API and develop a better understanding of explicit APIs.
  • Understand clustered shading, which involves splitting up the camera frustum into bounding “clusters”, and assign the lights from the scene to them.
  • Understand deferred shading, which involves splitting rendering in to a “G-Buffer” render pass and a “Full-screen” lighting render pass.
    • “G-Buffer” geometry pass: process the geometry data and output seperate position, normal and albedo framebuffers
    • “Full-screen” Lighting pass: using the framebuffers from the last pass, calculate the lighting for each pixel.
This post is licensed under CC BY 4.0 by the author.