Reflections

Write-ups on the thought process behind building the renderers.
Each series is a curated arc through a renderer's progression.
The reflection buffer accumulates every write-up, curated and uncurated.

SERIES 01 / 02
CPU · Offline · C++

A Path Tracer

A CPU path tracer, from a single ray to San Miguel at ten million triangles.

5 chapters · 2026 · APR · 14Read the series
SERIES 02 / 02
GPU · Real-time · OpenGL

Real-Time Light

A deferred OpenGL renderer, and the approximations that hold it at 60 frames per second.

5 chapters · 2026 · APR · 18Read the series
End of the curated arcs

The Reflection Buffer

Consolidated list of write-ups on the renderers.

  1. 2026 · APR · 18Light Bounces OnceScreen-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.
  2. 2026 · APR · 14The Room ItselfScaling to San Miguel and the Bistro: importance-sampled HDR environment lighting, an area light aggregated from every emissive triangle, a binary scene cache, and offline denoising.
  3. 2026 · APR · 04Where Corners Stay DarkAlchemy 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.
Open the buffer + 7 more reflections