Fast approximate anti-aliasing
![Three powerlines, a jagged one followed by two smoother ones.](../I/m/Anti_aliasing_comparison.png)
Fast Approximate Anti-Aliasing (FXAA) is an anti-aliasing algorithm created by Timothy Lottes under NVIDIA.[1]
The main advantage of this technique over conventional anti-aliasing is that it does not require large amounts of computing power. It achieves this by smoothing jagged edges ("jaggies")[2] according to how they appear on screen as pixels, rather than analyzing the 3D models itself as in conventional anti-aliasing.[1] In addition it smooths edges in all pixels on the screen, including those inside alpha-blended textures and those resulting from pixel shader effects, which were previously immune to the effects of multisample anti-aliasing (MSAA).[3]
The downsides are that textures may not appear as sharp if they are included in the edge detection, and it must be applied before rendering the HUD elements of a game, lest it affect them too.
It is very similar to a patent Image Processor,[4] submitted by Stephen Todd at IBM in 1991.
Processes
![Building image with highlighted edges.](../I/m/FXAA_process.jpg)
The processes of FXAA are listed as follows:
Find all edges contained in the image
Finding edges is typically a depth-aware search, so that pixels which are close in depth are not affected. This helps to reduce blurring in textures, since edges in a texture have similar depths.
Smooth the edges
Smoothing is applied as a per-pixel effect. That is, there is no explicit representation of the edges. Rather, the first step is a depth-aware edge filter, which marks pixels as belonging to edges, and the second step filters the color image values based on the degree to which a pixel is marked as an edge.
References
- 1 2 Lottes, Timothy (February 2009). "FXAA" (PDF). NVIDIA. Retrieved 29 September 2012.
- ↑ Wang, James (March 19, 2012). "FXAA: Anti-Aliasing at Warp Speed". NVIDIA. Retrieved January 3, 2013.
- ↑ Atwood, Jeff (December 7, 2011). "Fast Approximate Anti-Aliasing (FXAA)". Coding Horror. Retrieved September 30, 2012.
- ↑ Stephen Todd (March 1, 1991). "Image processor".