Deferred rendering is an alternative rendering algorithms where instead of rendering an object in multiple lighting passes, each object is rendered to a G-Buffer containing all of the related lighting information, then the lights are rendered as geometry to combine the results.  It’s a detailed and complex combination of data sorting, pipeline shifting, and shaders, typically “glossed over” due to complexity.  A new article on GameDev aims to correct this by offering details on implementation, as well as example code.

This article is a design article about implementing deferred rendering. The motive behind it is that while there have been many articles and presentations about the concepts behind deferred rendering (for example, the article about deferred rendering in Killzone 2), there is very little information about how to approach it from a design standpoint. This article aims to do just that.

The article is accompanied by code that implements a deferred rendering framework, and is somewhat a development journal of that framework. You can get the code from the SVN repository of the open source 3D rendering engine, Ogre. The code is in the sample called DeferredShading.

via GameDev.net — Deferred Rendering Demystified.