Jump to content

Fast approximate anti-aliasing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Justin15w (talk | contribs) at 15:36, 25 November 2016 (Reverted 1 edit by 37.245.167.182 (talk) to last revision by 2601:647:4D03:3CA7:4CC6:91A8:CF63:A9AE. (TW)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Three powerlines, a jagged one followed by two smoother ones.
Comparison between (from left to right) no anti-aliasing, 4x MSAA, and FXAA.

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.
FXAA processing illustrations

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. ^ a b Lottes, Timothy (February 2009). "FXAA" (PDF). NVIDIA. Retrieved 29 September 2012.
  2. ^ Wang, James (March 19, 2012). "FXAA: Anti-Aliasing at Warp Speed". NVIDIA. Retrieved January 3, 2013.
  3. ^ Atwood, Jeff (December 7, 2011). "Fast Approximate Anti-Aliasing (FXAA)". Coding Horror. Retrieved September 30, 2012.
  4. ^ Stephen Todd (March 1, 1991). "Image processor".