Now these methods have a drawback which is that they are not capable of improving quality in a physically accurate way, like multisampling does (what I mean by this is that it brings out the sub-pixel details from geometry by super-rasterizing), but they are a terrific method for curtailing visual artifacts which are a result of regular rasterization.
Case in point: I run an Nvidia GTX 260, it came moderately overclocked from the factory, it is a Gigabyte Super Overclock model. I also run a 1920x1200 screen.
It's sometimes difficult to maintain good framerates when I play Battlefield 3, but I've noticed some general improvements in terms of speed recently which has made the game play quite a bit better today than it did back when it was released.
The point is, the performance hit caused by 4xMSAA or even 2xMSAA is very noticeable in this game at my full resolution, because it needs all the power it can get. However, FXAA post processing antialiasing comes at almost no cost! A month or two ago, I found myself running the game in windowed mode most of the time because it achieved better framerates that way. But now I've discovered that disabling MSAA and using FXAA almost completely eliminates edge-artifacts without the performance hit of MSAA.
I find that shader-post-process AA is extremely good at producing smooth edges when lines are near-horizontal or near-vertical, and also with thin objects, like the cables on the telephone pole in the link. On still images, a similar smoothness quality is unobtainable until you crank MSAA to 16x.
However shader-post-process AA does not eliminate temporal aliasing artifacts: Even though edges are smoothed terrifically, they "jump" as they move across pixel boundaries.
The reason why this happens is because the shader-AA has no knowledge of actual geometric coverage data, which is what MSAA and friends are essentially based on. As an edge traverses the pixel boundary, our smooth edge will "jump" the length of a pixel, rather than smoothly blending in and out like we would see with 16xMSAA/CSAA. CSAA is particularly good for this because it rasterizes at a higher resolution than MSAA.
So with all this in mind I don't think that shader-based antialiasing methods are a replacement for traditional methods. However I think they are a really cool way to improve image quality in almost every situation. They have the benefit of not requiring a different render buffer storage format.
I think that, going forward, the best way to apply antialiasing in games would be a combination of coverage sampling AA and post-process AA.
Jeff Atwood claims that FXAA made MSAA/CSAA obsolete overnight. What do you think? What are some other ways to compare and contrast traditional antialiasing with shader-based antialiasing?