I'm thinking of doing my final year honours project on deferred shading. It's a technology degree (I'm a programmer, allegedly!), so the focus would probably be something along the lines of how deferred shading can be used, what the pros and cons are and whether it is well-suited to current or next generation games. I'd implement a bunch of deferred shading demos and probably contrast them to forward-rendering in a variety of scenarios, then evaluate the technique and how it fits into real-world games.
As I understand it, deferred shading has only really become a possibility with recent graphics cards (geforce 6 onwards) due to branching in shaders (so you can have a wider array of material types as opposed to being stuck with a few) and the prohibitive fill rate demands. As games include more complex lighting models that require multiple passes, deferred shading will probably get more popular since it scales better as lighting compexity increases, plus it has a perfect success rate when it comes to rendering only pixels that are visible. I know it breaks AA and alpha-blending, but you kinda solve the former using an edge blur shader (not as good, but I guess it's ok?) and the latter just by rendering the alpha-blended surfaces using the forward renderer as a separate case.
I'm just reading around the issue right now as we have to decide on a project soon. I was initially set on trying to splice distinctly different scene management strategies (like mixing BSP, portals and octrees to allow a wide-ranging environment in a seamless fashion) but ultimately I don't think I have the technical skills to accomplish that task or, even if I did manage it, I'd probably get bogged down in writing / altering editors, compilers, rendering apps and other things that were necessary, but ultimately on the periphery of what I was trying to achieve (prove a concept).
So basically I'm interested in whether any of you guys have worked on a game or engine that used or was using deferred shading. The reason I say "used" is that I've heard quite a few titles tried it and ditched it because older hardware didn't give satisfactory results. If so, what were your experiences of it in terms of flexibility and how did it stack up against traditional forward rendering? I say this with regard to both technical and artistic angles.
Any thoughts (that you can give me outwith NDA stuff etc) on the subject would be great, cheers. I think this is probably a good topic to tackle as I can't find any consensus on whether deferred shading is or will be a good option to use and there seems to be a lot of debate on certain sites regarding whether engines like Unreal 3 are using deferred shading for specific parts of their rendering code. No consensus makes for a good topic, ja?