Deferred Shading for Multiple Real-Time Soft Shadows
Rama Hoeztlein, Media Arts & Technology Program, UCSB


Deferred shading is an increasingly popular technique for real-time rendering in games. The general approach consists of a single polygon pass which renders depth, color and normals to off-screen buffers. Lighting is then accomplished with GPU shaders that color each point based on previously stored data. Since each light source uses the same data, multiple polygon passes are not needed. Deferred shading is extended here to allow for efficient shadows from multiple light sources by separating shadow and lighting stages. Since shadows are rendered independently, they can be finely controlled, making it easier to create soft, colored shadows in real-time.

This technique allows any combination of traditional rendering and deferred shading. Shadows are implemented here using low-res shadow maps, 4x4 PCF with screen-space blur. The Shadow and Lighting stages may be combined for greater efficiency, or they may be separated for greater control. Traditional multi-pass rendering may even be combined with deferred shading used only for shadows. By separating deferred shading into stages, we can achieve a greater degree of control and flexibility while maintaining performance.  
7 light sources, each with shadows, in real-time