Rendering in Retrospect

Notes on real-time rendering, written while building and studying it.

A twelve-part retrospective — written in 2026, looking back at years of learning real-time rendering, and at the custom engine I'm building now.

#12 ·

My Next Study Plan: CUDA, Kernels, and Attention

Retrospective — written in 2026, looking back. Starting Again, On Purpose Every post in this series so far has been retrospective — knowledge I already have, organized. This last one is different. It is a study plan,…

#11 ·

What Years of Rendering Taught Me: Five Principles

Retrospective — written in 2026, looking back. A Series, Compressed This series started in 2021, looking back at what rendering work had actually taught me as opposed to what I assumed it would. Across posts on…

#10 ·

Why I'm Building a Custom Engine Again

Retrospective — written in 2026, looking back. A Question I Keep Getting Asked, Mostly by Myself Every few months I ask it again, usually at midnight, usually while debugging something an off-the-shelf engine would have…

#9 ·

Post-Processing Is Where Taste Lives

Retrospective — written in 2026, looking back. The Last Ten Percent That Reads as Ninety Most of a renderer is correctness work. A shadow map either leaks or it doesn't. A normal is either in the right space or the…

#8 ·

Rendering Under Tight Budgets: Small Devices, Big Constraints

Retrospective — written in 2026, looking back. On a large machine, rendering budgets feel abstract. There is headroom, and headroom forgives. On a small device — a handheld, a battery-powered prototype board, a modest…

#7 ·

Draw Calls, State Changes, and Other Invisible Costs

Retrospective — written in 2026, looking back. Open a profiler on a slow frame and the eye goes straight to the biggest draws: the million-triangle mesh, the fullscreen pass with the heavy shader. Those are the visible…

#6 ·

Stop Guessing: A Profiling Habit for Graphics Programmers

Retrospective — written in 2026, looking back. Every graphics programmer I know, including me, has a story about optimizing the wrong thing. Mine follow a pattern: a frame feels slow, I form a confident theory from the…

#5 ·

Lighting Models Break at the Edges

Retrospective — written in 2026, looking back. Most lighting models look convincing in the middle of their parameter space. Put a moderately rough, non-metallic sphere under a soft light, pointed more or less at the…

#4 ·

Materials Are Data, Not Formulas

Retrospective — written in 2026, looking back. The Shader-Per-Material Trap Early in my personal rendering experiments, every distinct surface got its own shader. A rough metal needed a highlight tweak, so I copied the…

#3 ·

Shadows Are a Budget Problem, Not a Quality Problem

Retrospective — written in 2026, looking back. The Wrong Question For a long time, when a shadow looked bad in a personal project, I asked: how do I make this shadow higher quality? The answers that invites are all…

#2 ·

The First Shader I Actually Understood

Retrospective — written in 2026, looking back. Copying Is Not Understanding For a long time, every lighting shader I wrote was copied — not always literally copy-pasted, but copied in structure. I knew diffuse involved…