Multisample anti-aliasing

From Wikipedia, the free encyclopedia

Multisample anti-aliasing (MSAA) is a type of anti-aliasing, a technique used in computer graphics to improve image quality.

Contents

[edit] Definition

The term generally refers to a special case of supersampling. Initial implementations of full-scene anti-aliasing (FSAA) worked conceptually by simply rendering a scene at a higher resolution, and then downsampling to a lower-resolution output. Most modern GPUs are capable of this form of antialiasing, but it greatly taxes resources such as texture bandwidth and fillrate. (If a game is highly TCL-bound or CPU-bound, supersampling can be used without much performance hit.)

According to the OpenGL GL_ARB_multisample[1] specification, "multisampling" refers to a specific optimization of supersampling. The specification dictates that the renderer evaluate one color, stencil, etc. value per pixel, and only "truly" supersample the depth value. (This is not the same as supersampling, but by the OpenGL 1.5 specification[2], the definition had been updated to include fully supersampling implementations as well.)

In graphics literature in general, "multisampling" refers to any special case of supersampling where some components of the final image are not fully supersampled. For example, a real-world multisampling implementation may also supersample stencil values. The lists below refer specifically to the ARB_multisample definition.

[edit] Advantages

  • Pixel shaders need usually be evaluated only once per pixel.
  • Additional memory bandwidth is not required for multiple color/stencil/etc. samples.
  • The edges of polygons (the most obvious source of aliasing in 3D graphics) are antialiased.

[edit] Disadvantages

  • Aliasing and other artifacts are still visible inside rendered polygons.
  • Multi-pass rendering techniques may suffer when interacting with edges.
    • Since stencil values are still per-pixel according to the specification, some strange interactions can occur at the edges of polygons when using techniques such as shadow volumes.

[edit] References

  1. ^ ARB_multisample, "Additions to Chapter 3 of the 1.2.1 specification"
  2. ^ OpenGL 1.5 specification, section F.3