Real-Time Light
One buffer at a time — every shortcut the rendering equation lets you take at 60 frames per second.
The path tracer was about correctness through brute force: shoot enough rays, average enough samples, the right answer falls out eventually. The deferred renderer is its inverse: cheat the rendering equation in clever ways so the right answer falls out at sixty frames per second.
The G-buffer comes first: every fragment writes its position, normal, albedo, and material into screen-space textures so lighting can be computed once per pixel, not once per pixel per light. Shadows arrive as a depth test from the light's point of view, then progressively softened — binary, percentage-closer-filtered, variance-, and finally moment-based — until the penumbras look right. Image-based lighting replaces the analytic light with an HDR environment, pre-filtered offline so a glossy surface can sample roughness-correct reflections at one texture lookup per pixel. Ambient occlusion is added back where the geometry never was: the small darknesses inside corners that direct lighting can't reach. And finally a single indirect bounce, also in screen space, lets one surface tint another by reflected light without ever leaving the current frame's depth buffer.
Every chapter is a different approximation of the same integral the path tracer evaluated honestly. The art of the real-time renderer is knowing which approximations the eye will accept, and where they break.
CHAPTERS
- 01
The G-Buffer
— Deferred ShadingDeferred shading: geometry and material baked into a four-target G-buffer so one Cook–Torrance BRDF evaluation runs per visible pixel, additive per light no matter how many.
G-BufferCook-Torrance BRDFMulti-light PBROpenGL2026 · FEB · 09→ - 02
From the Light's Point of View
— Shadow MappingShadow mapping by rendering depth from the light's view, then four progressively softer ways to read it back: biased binary, PCF, variance, and moment shadow maps, blurred in compute.
Shadow MappingPCFVariance Shadow MapsMoment Shadow Maps2026 · MAR · 01→ - 03
Light, Pre-Filtered
— PBS + IBLImage-based lighting in real time: the HDR sky pre-filtered to nine spherical-harmonic coefficients for diffuse, importance-sampled with GGX and Hammersley for specular, then tone-mapped back to display range.
Spherical HarmonicsGGX Importance SamplingHammersley SequenceHDR Tone Mapping2026 · MAR · 28→ - 04
Where Corners Stay Dark
— Screen-Space Ambient OcclusionAlchemy screen-space ambient occlusion: spiral-sampling each pixel's G-buffer neighborhood for the obscurance IBL flattens out, then a depth- and normal-aware bilateral blur before it multiplies the ambient term.
Alchemy SSAOBilateral FilterSpiral SamplingEdge-Aware Blur2026 · APR · 04→ - 05
Light Bounces Once
— Screen-Space Directional OcclusionScreen-space directional occlusion: sampling the 3D hemisphere so occlusion keeps its direction and color, then re-using the blocked samples as secondary emitters for one bounce of indirect light.
SSDOOne-Bounce GIHemisphere SamplingScreen-Space Visibility2026 · APR · 18→