Here's another hybrid deferred/forward shading approach if anyone's interested
This one should work on a lot more hardware than most MRT based solutions.
It does a geometry pass storing normals and depths into a "G-Buffer" (not really a g-buffer...).
Then for each light, it uses the g-buffer and the lights properties to accumulate all light sources into a light-buffer (kinda like merging all lights into a single 'average light').
Then it does a forward shading pass on the geometry, taking the light properties from the light-buffer.
Light Pre-Pass Renderer
http://diaryofagraphicsprogrammer.blogs ... derer.html
http://www.gamedev.net/community/forums ... _id=487154