In production rendering we double the resolution of the image and scale down with an EWA filter to get a relatively nice and much cheaper approximation effect as far as render time goes. In games they refer to this as "super sampling". The act of rendering the scene at double res and then re-rendering it on a single polygon in front of the screen at screen res.
Check this out, posted awhile back by one of the techs for Planetary Annihilation. I post this at work to help out new rendering staff understand image quality and which is most efficient.
----------------------------------
"Alright, "quick" anti-alias overview.
SSAA (super-sampled anti-aliasing) is the original anti-aliasing technique. In the average use case it can be best described as rendering the scene at a higher resolution and down sampling to the screen resolution, so at 2x SSAA a 800x600 game is rendered at 1600x1200 and shrunk to 800x600. This means for every displayed game pixel four points were rendered and combined.
-
MSAA (multi-sample anti-aliasing) is essentially the same idea as SSAA, render multiple sample points and combine for each pixel. However 2x MSAA only renders two points per pixel instead of four points like SSAA, and only the opaque objects. Transparent objects are rendered separately and added afterwards. 4x and above render that number of points at randomized or offset positions with in each displayed pixel to try to reduce aliasing over what the classic SSAA is generally capable of. This means 4x MSAA is generally superior to 2x SSAA in reducing jagged edges on opaque object edges at a slightly reduced quality of transparencies.
-
CSAA (coverage sample anit-aliasing) or similar methods take the same samples as MSAA would, but does additional work to determine how much of that sample should contribute to the final pixel.
-
There are also AA methods for transparency that can be run in addition to MSAA or CSAA so that non opaque edges are filtered as well.
-
There are also various adaptive anti-aliasing methods that try to find geometry edges and only enable or increase the number of samples of the anti-aliasing method along those edges.
-
FXAA (fast approximate anti-aliasing), MLAA (morphological anti-aliasing), and similar anti-aliasing methods are completely different beasts. These are post process effects that take the final rendered image and apply the equivalent to a very clever Photoshop filter that slightly blurs high contrast parts of the image. MLAA was originally only available on the Sony PS3, but is now also on AMD video cards on the PC. FXAA is available on all NVidia video cards, but they've also released the code for it optimized for all consoles and even mobile devices and can be directly implemented in to any game that runs D3D or OpenGL.
-
So, here's the kicker. FXAA looks great in screenshots or if nothing is moving on screen. In motion it does very little to reduce perceived aliasing. It also has a tendency to cause problems with UI elements and text when forced on via drivers. The other more traditional AA methods are not obsolete, they handle the movement of edges across the screen far better than the post process type anti-aliasing. MSAA and FXAA Used together they can create visual superior anti-aliasing with less of a performance hit than SSAA alone.
-
I've seen some articles gush over Crysis's implementation of SSAA as being superior to MSAA techniques... but they're not doing anything particularly special with their SSAA, it's just their games have a lot of transparent objects and sharp edges created by shaders rather than geometry. In these cases SSAA will always win over current MSAA techniques visually. Since MSAA and even adaptive techniques are all based on geometry edges, as more games use complex shaders and transparency to create detail these techniques become less effective.
-
So, if you've made it through that wall of text, I do plan on getting FXAA in to the game on all platforms that are capable of it along with MSAA or CSAA or whatever the default AA methods the platform supports. "