Deferred vs.Frontend Shading


Deferred shading is the default method of rendering lights and materials in Unreal (the other being forward rendering). Deferred means that the work is moved to a separate pass, instead of being done in each object’s shaders. This kind of lighting waits for the base pass to accumulate the information about opaque objects and their materials into a G-Buffer. Then it resolves the lighting in screen space, in a single pass.

A pass is a set of draw calls executed on the GPU.

  • This approach reduces the performance hit of having multiple overlapping light sources, which is a typical issue in forward rendering.


When using a forward renderer, all work on dynamic lighting is done in the base pass, instead of a separate Lights pass.

This approach gets rid of the G-Buffer, saving GPU memory and making several thing easier (especially anti-aliasing). Don’t be suprised, though, that the cost of the base pass is significantly higher with forward.