Deferred Rendering
Deferred rendering is a computer graphics technique used in real-time rendering, particularly in video games and 3D applications, where lighting and shading calculations are postponed until after geometry has been rendered to a set of intermediate buffers (G-buffers). Instead of calculating lighting per-pixel during the initial geometry pass, it stores surface properties like position, normal, albedo, and material data in textures, then performs lighting in a separate pass. This approach decouples scene complexity from lighting complexity, allowing many light sources without linearly increasing rendering cost.
Developers should use deferred rendering when building applications with complex lighting scenarios, such as games with many dynamic lights (e.g., first-person shooters or open-world environments), as it efficiently handles numerous light sources by processing them in screen space. It's particularly beneficial for forward-rendering bottlenecks, enabling advanced effects like global illumination approximations and post-processing, though it requires more memory bandwidth and may struggle with transparency or anti-aliasing.