Spatial Anti-aliasing - Practical Real-time Anti-aliasing Approximations

Practical Real-time Anti-aliasing Approximations

There are only a handful of primitives used at the lowest level in a real-time rendering engine (either software or hardware accelerated). These include "points", "lines" and "triangles". If one is to draw such a primitive in white against a black background, it is possible to design such a primitive to have fuzzy edges, achieving some sort of anti-aliasing. However, this approach has difficulty dealing with adjacent primitives (such as triangles that share an edge).

To approximate the uniform averaging algorithm, one may use an extra buffer for sub-pixel data. The initial (and least memory-hungry) approach used 16 extra bits per pixel, in a 4×4 grid. If one renders the primitives in a careful order, such as front-to-back, it is possible to create a reasonable image.

Since this requires that the primitives be in some order, and hence interacts poorly with an application programming interface such as OpenGL, the latest methods simply have two or more full sub-pixels per pixel, including full color information for each sub-pixel. Some information may be shared between the sub-pixels (such as the Z-buffer.)

Read more about this topic:  Spatial Anti-aliasing

Famous quotes containing the word practical:

    Call them rules or call them limits, good ones, I believe, have this in common: They serve reasonable purposes; they are practical and within a child’s capability; they are consistent; and they are an expression of loving concern.
    Fred Rogers (20th century)