Metal Tutorial 3 — Deferred Rendering
Forward rendering shades every fragment for every light — which blows up fast. Deferred rendering solves this by splitting the work into two passes: first write geometry data into a G-buffer, then run a single full-screen lighting pass that reads from it. The result is a scene that can support many lights without the cost growing with geometry complexity.

What you’ll learn:
- Writing to multiple render targets (MRT) in a single pass
- Structuring a G-buffer with position, normal, and albedo textures
- Reading G-buffer textures in a full-screen lighting pass
- How
MTLRenderPassDescriptorload/store actions control memory usage