Hi everyone,
I'm currently reviewing the techniques I could use to achieve the overall look I target for my current game project. I have a weakness for deferred shading, not because I'm planning on using so many lights, but because I find the decoupling of rasterization and lighting much cleaner that way.
So, I was planning on using deferred shading. And I'm aware of some issues using it, ie. more complex application of antialiasing (when I'm not even sure to grasp it even with forward renderers), as well as being unable to use an unified technique for semi-transparent areas.
Here comes supersampling. This is an old technique already, but it is often dismissed as being too expensive. Yet, in my mind, it comes with several advantages :
- it handles edge-antialiasing quite "out of the box"
- it does somewhat help with the high-frequency specular aliasing issue as described there by MJP.
- I'm thinking it could also be used to fake transparency in some stochastic manner (75% alpha would mean that 1 out of 4 supersampled fragments would get covered, etc.). If done well, maybe you wouldn't even need to sort your transparent objects from back to front !
So, all in, all, given that it solves so many issues all-in-one, is it *really* that expensive, using current hardware, as compared to the alternatives ?
PS :
I guess this is quite a general question that anybody implementing a deferred shader could ask.
In my case, I'm planning for a cell-shaded final look. I don't really know yet if I'll go with some way to detect almost-perpendicular normals and mark them as my outlines, or if I'll be using a sobel filter in a per-pixel post process. Sobel would maybe help with edge-AA by itself, and maybe prevent the transparency trick I'm thinking of, if done directly on the supersampled buffers. What do you think ?
Thank you for your insights