Fast approximate anti-aliasing (FXAA) is a screen-space anti-aliasing algorithm created by Timothy Lottes at Nvidia.[1]

FXAA 3 is released under a public domain license. A later version, FXAA 3.11, is released under a 3-clause BSD license.[2]

Algorithm description

edit
  1. The input data is the rendered image and optionally the luminance data.[3]
  2. Acquire the luminance data.[3] This data could be passed into the FXAA algorithm from the rendering step as an alpha channel embedded into the image to be antialiased, calculated from the rendered image, or approximated by using the green channel as the luminance data.[3]
  3. Find high contrast pixels by using a high pass filter that uses the luminance data.[3] Low contrast pixels that are found are excluded from being further altered by FXAA.[3] The high pass filter that excludes low contrast pixels can be tuned to balance speed and sensitivity.[3]
  4. Use contrast between adjacent pixels to heuristically find edges, and determine whether the edges are in the horizontal or vertical directions.[3] The blend direction of a pixel will be perpendicular to the detected edge direction on that pixel.[3]
  5. Calculate one blend factor for a high-contrast pixel by analyzing the luminance data in the 3x3 grid of pixels with the pixel in question being the center pixel.[3]
  6. Search along the detected edge to determine how long that edge goes for and what direction the actual edge goes when the detected horizontal or vertical edge ends in order to take into account the actual edge's direction in order to calculate a second blend factor.[3] This step can be tuned for more quality by increasing the search resolution and how far the search goes before the search for the edge's end gives up, or for more speed by reducing both.[3]
  7. Blend the pixel using the chosen blend direction and the maximum of both of the blend factors that were calculated.[3]

Comparison

edit

The main advantage of this technique over conventional spatial anti-aliasing is that it does not require large amounts of computing power. It achieves this by smoothing undesirable jagged edges ("jaggies")[4] as pixels, according to how they appear on-screen, rather than analyzing the 3D model itself, as in conventional spatial anti-aliasing.[1] Since it is not based on the actual geometry, it will smooth not only edges between triangles, but also edges inside alpha-blended textures, or those resulting from pixel shader effects, which are immune to the effects of multisample anti-aliasing (MSAA).[5]

The downsides are that high contrast texture maps are blurred, effect that can be reduced by adjusting the "subpix filtering", that FXAA must be applied before rendering the HUD elements of a game lest it affect them too, and that polygonal details smaller than one pixel that would have been captured and rendered by MSAA and SSAA cannot be captured and rendered by FXAA alone.

FXAA includes a specific sub-pixel low-pass filter pass to reduce shimmering and aliasing in shader results such as shadows and specular highlights.[1] This stage uses a low-pass filter on 3x3 neighborhoods to dampen high-frequency artifacts, helping to reduce "shimmering" or "stipple" aliasing in moving images.[1]

See also

edit

References

edit
  1. ^ a b c d Lottes, Timothy (February 2009). "FXAA" (PDF). NVIDIA. Retrieved 29 September 2012.
  2. ^ "opengl - Using NVidia FxAA in my code: Whats the licensing model?". Stack Overflow.
  3. ^ a b c d e f g h i j k l Flick, Jasper. "FXAA: Smoothing Pixels". Retrieved July 21, 2020.
  4. ^ Wang, James (March 19, 2012). "FXAA: Anti-Aliasing at Warp Speed". NVIDIA. Archived from the original on February 21, 2019. Retrieved January 3, 2013.
  5. ^ Atwood, Jeff (December 7, 2011). "Fast Approximate Anti-Aliasing (FXAA)". Coding Horror. Archived from the original on January 31, 2014. Retrieved September 30, 2012.

📚 Artikel Terkait di Wikipedia

Anti-aliasing

high-resolution images at a lower resolution: Fast approximate anti-aliasing (FXAA), created by Timothy Lottes under Nvidia. Also known as Fast Sample Anti-aliasing

Aliasing

anti-aliasing, the types of anti-aliasing include fast approximate anti-aliasing (FXAA), multisample anti-aliasing (MSAA), and supersampling. Temporal anti-aliasing

Morphological antialiasing

shading. A similar method in this class is fast approximate anti-aliasing (FXAA). Temporal anti-aliasing, also a post-process, has become the most common

Three.js

with effects such as bloom, depth of field, outline, motion blur, SSAO, and FXAA Built-in editor: graphical scene editor available online for building and

Multisample anti-aliasing

for a given frame than post processing anti-aliasing techniques such as FXAA, SMAA and MLAA. Early techniques in this category tend towards a lower performance

MT Framework

changes include support for real-time variation of a character model and FXAA. Building on top of Dragon's Dogma's updated technology, Resident Evil 6

Temporal anti-aliasing

developed to overcome this limitation, such as fast approximate anti-aliasing (FXAA), and morphological anti-aliasing (MLAA). These methods can have poor temporal

Luminous Engine

animation, and muscle based facial animation Anti-aliasing, including MSAA, FXAA, and Yebis 2 image-based anti-aliasing Artificial intelligence, including