[Home]Alpha compositing

HomePage | Recent Changes | Preferences

Difference (from prior major revision) (no other diffs)

Changed: 39c39
Co = Ca + Cb x (1 - Aa)
Co = Ca + Cb x (1 - αa)

Changed: 43c43
pixel in element B, and Aa is the alpha of the pixel in
pixel in element B, and αa is the alpha of the pixel in

In 3D graphics it is often useful to render image elements in separate passes, and then combine the resulting multiple 2D images into a single, final image in a process called compositing. For example, compositing is used extensively when combining computer rendered image elements with live footage.

In order to correctly combine these image elements, it is necessary to keep, for each element, an associated matte. This matte contains the coverage information - the shape of the geometry being drawn - and allows us to distinguish between parts of the image where the geometry was actually drawn and other parts of the image which are empty.

To store this matte information, the concept of an alpha channel was introduced in the 1984 paper "Compositing Digital Images", by Thomas Porter and Tom Duff. In a 2D image element which stores a color for each pixel, an additional value is stored in the alpha channel containing a value between 0 and 1. A value of 0 means that the pixel does not have any coverage information, i.e. there was no color contribution from any geometry because the geometry did not overlap this pixel. A value of 1 means that the pixel is fully opaque because the geometry completely overlapped the pixel.

If an alpha channel is used in an image, it is common to also multiply the color by the alpha value, in order to save on additional multiplications during the compositing process . This is usually referred to as premultiplied alpha. Thus, assuming that the pixel color is expressed using RGB triples, a pixel value of (0.0, 0.5, 0.0, 0.5) implies a pixel which is fully green and has 50% coverage.

With the existence of an alpha channel, it is then easy to express useful compositing image operations, using a compositing algebra defined in the Duff and Porter paper. For example, given two image elements A and B, the most common compositing operation is to combine the images such that A appears in the foreground and B appears in the background; this can be expressed as A over B, and can be accomplished by applying the following formula to each pixel value:

Co = Ca + Cb x (1 - αa)

where Co is the result of the operation, Ca is the color of the pixel in element A, Cb is the color of the pixel in element B, and αa is the alpha of the pixel in element A. This assumes that the pixel colors of each element have already been premultiplied by alpha.

HomePage | Recent Changes | Preferences
This page is read-only | View other revisions
Last edited September 27, 2001 10:50 am by Levork (diff)