FXAA – Fast Approximate Anti-Aliasing

FXAA  takes a different approach to MLAA edge re-vectorization ideology. Instead of shape patterns, a horizontal and vertical pixel- (luminescence) discontinuities are detected which represent an edge angle (length is the discontinuation magnitude). From the local pixel position in both negative and positive directions a end-to-edge search is performed (the of edge end is determined by a maximum search distance or a threshold which exceeds average discontinuation magnitude). Based on a perpendicular vector from the local to end-of-search pixel position vector, a blending/resampling operation is performed with the corresponding neighboring pixel (pixel position where the perpendicular vector points at). The amount of blending depends on the luminescence magnitude.

Clipboard02

Channels: Red = edge, Green = horizontal discontinuation, Blue = vertical discontinuation.

Advantage:

  • Pixel and sub-pixel antialiasing (an edge can be represented by a singe single pixel).
  • Can be integrated into a single fragment shader.
  • Low integration complexity factor.
  • Deferred rendering pipeline friendly.

Disadvantages:

  • Has tendency to result in a less sharp image quality than MLAA.
  • Requires hardware anisotropic sampling support (should not be a problem on modern hardware).
  • Designed to work on final image with low dynamic range sRGB, HDR images will generate artifacts (solution: clamping channel values between 0 and 1).

Leave a Reply