Deferred Rendering
Shade once per pixel, after geometry
Definition
Deferred rendering splits the frame into two phases: first, geometry attributes (albedo, normal, roughness, depth) are written to a G-Buffer; then lighting is computed once per screen pixel, regardless of how many objects overlap. This makes the cost of dynamic lights nearly independent of geometry complexity, which is why Unreal’s default path and Unity’s HDRP are deferred. The cost is higher memory bandwidth and awkward MSAA support.
In production
Deferred rendering splits the frame into two phases: first, geometry attributes (albedo, world-space normal, roughness, metalness, and depth) are written to a set of full-screen render targets called the G-Buffer; then a separate lighting pass computes shading once per screen pixel by reading back those buffers, regardless of how many overlapping objects contributed to that pixel. This makes the cost of adding dynamic lights nearly independent of scene geometry complexity, which is why Unreal Engine's default rendering path and Unity's HDRP are both deferred — a level with fifty dynamic point lights stays performant because the lighting pass only touches visible pixels once each. The trade-off is higher memory bandwidth and awkward hardware MSAA support, since the deferred resolve happens after geometry rasterization, forcing engines to rely on TAA instead. Deferred renderers also struggle with transparent materials, which can't write to the G-Buffer the same way opaque geometry does, so glass and foliage are typically rendered in a separate forward pass layered on top.
