MFAA Details
What is aliasing?
Anti-aliasing is sub pixel interpolation, a technique that reduces the jagged effect of edges and makes them appear to have better resolution and image quality. So in essence, AA was developed to get rid of the "jaggies" on diagonal lines of rendered polygons. To recover a signal, or image, you need a minimum of samples to be able to give a realistic representation of the image.
The problems start with texture maps being either too close or too far away from the viewpoint. If the polygon is far away then you only have a limited number of points to show the texture map, so logically you have to drop a lot of the real pixels of your texture map.
An Antialiased line - If you draw a straight line (under an angle) using a paint program and you zoom in, you will discover that the line looks like a stairway. To remove this and make the line look like a line points in different colors are added to the side of the line to make it look more like a real line. |
This creates some sort of interlace effect : one line is shown and one is not. This can result in weird patterns appearing, and makes the texture map look completely different from the real one. A similar problem is if the polygon is close to you. You need more info than there is available, resulting in the generation of random noise (meaningless values). Most of the time the last problem is solved by MIP-Mapping while the other is solved by the Antialiasing. Another point where Antialiasing is used is with straight lines. If you draw a straight line (under an angle) using a paint program and you zoom in, you will discover that the line looks like a stairway. To remove this and make the line look like a line, points in symbiotic colors are added to the side of the line to make it look more like a real line.
Nvidia's new AA mode - MFAA
There are so many AA modes these days that it is getting a little nauseating. Multi-Frame Sampled Anti-Aliasing (MFAA) is a new, Maxwell GPU (GeForce GTX 970/980 and newer) exclusive anti-aliasing technique that improves the performance of multisample anti-aliasing (MSAA), the most common form of AA used by gamers. MSAA reduces the prominence of jagged edges like discussed above, but does so with a substantial performance cost.
MFAA was developed to reduce performance cost while delivering comparable image quality to MSAA by varying, in interleaved fashion, the sample patterns used per pixel both spatially in a single frame (where, for example, each successive pixel uses one of four different 2x AA sample patterns) and interleaved across multiple frames in time. The end result is that MFAA can deliver image quality approaching that of 4x MSAA at roughly the cost of 2x MSAA, or 8x MSAA quality at roughly the cost of 4x MSAA.
Alternating sample positions of 4x MFAA.
Previous-generation GPUs include fixed sample patterns for anti-aliasing (AA) that are stored in Read Only Memory (ROM). When gamers selected 2x or 4x MSAA for example, fixed sample patterns were used.
By alternating AA sample patterns both temporally and spatially, 4x MFAA has the performance cost of 2x MSAA, with image quality equivalent to 4x MSAA.
With Maxwell, NV now has embedded the foundation for programmable sample positions for rasterization that are stored on Random Access Memory (RAM), creating opportunities for new, more flexible, more inventive AA techniques that uniquely address the challenges of modern game engines, such as the increased performance cost of high-quality anti-aliasing. Maxwell's new RAM-based sample position technology can still be programmed with standard MSAA and TXAA patterns, but now the driver or application may also load the RAM with custom positions that are free to vary from frame to frame, or even within a frame.