NVIDIA's New FXAA Antialiasing Technology
NVIDIA's FXAA technology debuted in Age of Conan, and was recently found in Day 1 Studio's F.3.A.R. We'll look into FXAA and tell you what it is, what it does, and what gamers can expect out of it. We were surprised by the results, and we think you will be too. Will it be methods like this that replace traditional AA? We certainly hope so.
FXAA vs. MLAA
As FXAA is NVIDIA's answer to AMD's MLAA technology, we thought it would only be fitting to compare the two directly in this game. Morphological Anti-Aliasing (MLAA) is a post-processing filtering technique occurring outside the traditional rendering pipeline. AMD claims that it is agnostic to both the API and the graphics engine. What that means is that it works in Direct3D and OpenGL, and on any graphics engine, utilizing DirectCompute. However, right now, this feature can only be enabled on AMD GPUs.
It follows the same general process as FXAA: it processes the color data of a rendered image, looking for pixels with a high degree of local contrast. It then applies a smoothing filter to reduce contrast. How each technique goes about doing that, however, is quite different. FXAA looks for high contrast local to each pixel and MLAA looks for patterns of high contrast pixels. In this way, FXAA seems to be a superior technique for reducing pixel-sized aliasing.
To compare FXAA and MLAA, we have to look at both image quality and performance. First, we'll examine performance with an AMD Radeon HD 6970, a Radeon HD 6950, and a Radeon HD 6870.
FXAA vs. MLAA - Performance
To execute these tests, we configured F.3.A.R. to run with 16X AF and maximum in-game settings enabled. For the MLAA test, we disabled AA in-game and enabled MLAA in the AMD Catalyst Control Panel.
FXAA vs. MLAA with the AMD Radeon HD 6970
These tests were performed at 2560x1600.
With the Radeon HD 6970 at 2560x1600, FXAA was 41.6% faster than MLAA in F.3.A.R..
FXAA vs. MLAA with the AMD Radeon HD 6950
These tests were performed at 1920x1200.
At 1920x1200, the Radeon HD 6950 was about 37.5% faster with FXAA than with MLAA.
FXAA vs. MLAA with the AMD Radeon HD 6950
These tests were performed at 1680x1050.
The Radeon HD 6870 was about 32.2% faster in F.3.A.R. with FXAA selected than with MLAA selected.
Once again, the results are very clear. FXAA is a lot faster than MLAA, even on AMD GPUs.
FXAA vs. MLAA - Image Quality
MLAA is clearly slower than FXAA, but that doesn't mean much in and of itself. If it looks better than FXAA, there could be some justification for the performance difference. We've seen FXAA looking as good or better than 4X AA in some conditions, so MLAA has its work cut out for it. In order to justify its performance hit, it needs to look better than 4X AA, and a lot better than FXAA. Let's check it out.
Here we are looking at the floor going into the airport terminal at the beginning of Interval 07. To our eyes, there is no difference in the smoothness of the edges on the baseboard processed by FXAA and those processed by MLAA. The image quality is very similar here.
The screenshots for this comparison were taken in the opening scenes of Interval 08. It is hard to detect any major differences when zoomed out, one could say they both look the same while in motion. When zoomed in, it appears that might be more color gradients going on with MLAA than with FXAA, especially on the right side of the green triangle, but in real-world gameplay we couldn't spot the difference.
These screenshots were taken in Interval 05. In this comparison, there appears to be a slight difference in contrast in the magnified area, but it is again difficult (if not impossible) to make a definitive statement as to which looks better.
Here we are looking to see if FXAA offers any advantage over MLAA when anti-aliasing the edges of transparent textures such as foliage. These screenshots were also taken in Interval 05. In this screenshot comparison, there is a difference. In the magnified section, the FXAA side is clearly less grainy than the MLAA side. Aliased edges are effectively neutralized on both sides, but FXAA looks more effective to us in this situation.