Clustered Forward Shading Path

I’ve been thinking about that, and complex lights and etc. aren’t supported well by forward shading. You could, instead of doing all that, keep deferred and go for a K buffer of some sort, but with some things I’ve been thinking about (but will no doubt get around to… after a while. Ugh).

Stippled deferred is an interesting idea: http://www.gamedev.net/topic/647731-stippled-deferred-translucency/

In fact it’s a fascinating idea, and for keeping things parallel you’d actually re-arrange your buffers into uniform material properties for shading (restoring positions after) to keep from multipassing stuff. But you’d only get 4 layers of transparency, and at a low resolution. I was tinkering with the idea of generating a separate set of thin g-buffers dedicated too transparency, and going with a k-buffer (if needed) for that. It wouldn’t have full material properties. You could probably cull it down to 6 channels of render targets for actual material definitions. Compact YCoCg for color, X and Y for normals and reconstruct Z. The other two channels could be a material ID buffer and alpha. After that you’d still need your other information… but I digress. (mesh specific for emissive? I guess maybe there’s a case for transparencies with emissive and non emissive in the same texture… sigh).

It’d still be relatively cheap to then use these for extra translucency, 1 stippled buffer of this could get you (another?) 4 layers, a 2xMSAA K-Buffer target could get you 8. Since it would be dedicated to transparency to begin with the lowered resolution from using stippling wouldn’t be too much of a problem. Nor would the reduced color or normals. Not that deferred should be terribly memory intensive for the high end nowadays. Sucker Punch managed a ridiculous amount of render targets with Second Son, and a reduced g-buffer layout like UE4’s could, in my mind at least, spare some targets for transparency.

It’s not a solution for mobile or low end though. So I’m not sure if it’s right for UE4 and targeting all those things. I’m just not sure when I’ll have to chance to investigate it more (I’m putting off stuff just by typing this out!) But I thought I should type it out somewhere. Still, give the stippled deferred a look. Maybe no need to do something tough like hybrid stuff if it can be made to work just by itself, and support the extra transparency only target for the high end? It’s certainly true most mobile stuff could stand to lose some resolution these days *cough.

As for multiple lighting models. Well… ok, but there’s some stuff do for that.