This article needs additional citations for verification. (May 2010)
In computer graphics, alpha compositing or alpha blending is the process of combining one photowith a background to create the appearance of partial or full transparency. It is often useful to render picture elements (pixels) in separate passes or layers and then combine the resulting 2D photo into a single, final photocalled the composite. Compositing is utilize extensively in film when combining computer-rendered image elements with live footage. Alpha blending is also utilize in 2D computer graphics to put rasterized foreground elements over a background.
In order to combine the picture elements of the photo correctly, it is essentialto holdan associated matte for each element in addition to its color. This matte layer include the coverage infothe shape of the geometry being drawn—making it possible to distinguish between parts of the photowhere something was drawn and parts that are empty.
Although the most primaryoperation of combining two photo is to put one over the other, there are many operations, or blend modes, that are utilize.
To store matte information, the concept of an alpha channel was introduced by Alvy Ray Smith in the late 1970s and fully developed in a 1984 paper by Thomas Porter and Tom Duff. In a 2D photoa color combination is shop for each picture element (pixel). Additional data for each pixel is shop in the alpha channel with a value ranging from 0 to 1. A value of 0 means that the pixel is fully transparent and does not provide any coverage information; i.e. there is no occlusion at the photopixel window because the geometry did not overlap this pixel. A value of 1 means that the pixel is fully opaque because the geometry completely overlaps the pixel window.
With the existence of an alpha channel, it is possible to express compositing photooperations using a compositing algebra. For example, given two photo A and B, the most common compositing operation is to combine the photo so that A appears in the foreground and B appears in the background. This shouldbe expressed as A over B. In addition to over, Porter and Duff defined the compositing operators in, held out by (the phrase refers to holdout matting and is usually abbreviated out), atop, and xor (and the reverse operators rover, rin, rout, and ratop) from a consideration of choices in blending the colors of two pixels when their coverage is, conceptually, overlaid orthogonally:
As an example, the over operator shouldbe accomplished by applying the following formula to each pixel:
Here , and stand for the color components of the pixels in the result, photoA and photoB respectively, applied to each color channel (red/green/blue) individually, whereas , and are the alpha values of the respective pixels.
The over operator is, in effect, the normal painting operation (see Painter's algorithm). Bruce A. Wallace derived the over operator based on a physical reflectance/transmittance model, as opposed to Duff's geometrical approach. The in and out operators are the alpha compositing equivalent of clipping. The two utilizeonly the alpha channel of the second photoand ignore the color components.
If an alpha channel is utilize in an image, there are two common representations that are available: straight (unassociated) alpha and premultiplied (associated) alpha.
With straight alpha, the RGB components represent the color of the object or pixel, disregarding its opacity.
With premultiplied alpha, the RGB components represent the emission of the object or pixel, and the alpha represents the occlusion. The over operator then becomes:
A more obvious advantage of this is that, in certain situations, it shouldsave a subsequent multiplication (e.g. if the photois utilize many times during later compositing). However, the most significant advantages of using premultiplied alpha are for correctness and simplicity rather than performance: premultiplied alpha let correct filtering and blending. In addition, premultiplied alpha let regions of regular alpha blending and regions with additive blending mode to be encoded within the same image.
Assuming that the pixel color is expressed using straight (non-premultiplied) RGBA tuples, a pixel value of (0, 0.7, 0, 0.5) implies a pixel that has 70% of the maximum green intensity and 50% opacity. If the color were fully green, its RGBA would be (0, 1, 0, 0.5).
However, if this pixel utilize premultiplied alpha, all of the RGB values (0, 0.7, 0) are multiplied, or scaled for occlusion, by the alpha value 0.5, which is appended to yield (0, 0.35, 0, 0.5). In this case, the 0.35 value for the G channel actually indicates 70% green emission intensity (with 50% occlusion). A pure green emission would be encoded as (0, 0.5, 0, 0.5). Knowing whether a file utilize straight or premultiplied alpha is necessaryto correctly process or composite it, as a different calculation is required. It is also entirely acceptable to have an RGBA triplet express emission with no occlusion, such as (0.4, 0.3, 0.2, 0.0). Fires and flames, glows, flares, and other such phenomena shouldonly be represented using associated / premultiplied alpha.
The only necessarydifference is in the dynamic range of the color representation in finite precision numerical calculations (which is in all app): premultiplied alpha has a unique representation for transparent pixels, avoiding the need to selecta "clear color" or resultant artifacts such as edge fringes (see the next paragraphs). In an associated / premultiplied alpha image, the RGB represents the emission amount, while the alpha is occlusion. Premultiplied alpha has some practical advantages over normal alpha blending because interpolation and filtering give correct effect.
Ordinary interpolation without premultiplied alpha leads to RGB infoleaking out of fully transparent (A=0) regions, even though this RGB infois ideally invisible. When interpolating or filtering photo with abrupt borders between transparent and opaque regions, this shouldeffectin borders of colors that were not visible in the original image. Errors also occur in location of semitransparency because the RGB components are not correctly weighted, giving incorrectly high weighting to the color of the more transparent (lower alpha) pixels.
Premultiplication shouldreduce the accessiblerelative precision in the RGB values when using integer or fixed-point representation for the color components, which may cause a noticeable loss of quality if the color infois later brightened or if the alpha channel is removed. In practice, this is not usually noticeable because during typical composition operations, such as OVER, the influence of the low-precision color infoin low-alpha location on the final output image (after composition) is correspondingly reduced. This loss of precision also makes premultiplied photo easier to compress using certain compression schemes, as they do not record the color variations hidden inside transparent regions, and shouldallocate fewer bits to encode low-alpha location. The same “limitations” of lower quantisation bit depths such as 8 bit per channel are also showin imagery without alpha, and this argument is problematic as a result.
The RGB values of typical digital photo do not directly correspond to the physical light intensities, but are rather compressed by a gamma correction function:
This transformation better use the limited number of bits in the encoded photoby choosing that better matches the non-linear human perception of luminance.
Accordingly, computer software that deal with such photo must decode the RGB values into a linear space (by undoing the gamma-compression), blend the linear light intensities, and re-apply the gamma compression to the result:
When combined with premultiplied alpha, pre-multiplication is done in linear space, prior to gamma compression. This effect in the following formula:
Note that only the color components undergo gamma-correction; the alpha channel is always linear.
Although utilize for similar purposes, transparent colors and photomasks do not permit the smooth blending of the superimposed photopixels with those of the background (only whole photopixels or whole background pixels allowed).
A similar resultshouldbe achieved with a 1-bit alpha channel, as found in the 16-bit RGBA high color mode of the Truevision TGA photofile format and related TARGA and AT-Vista/NU-Vista display adapters' high color graphic mode. This mode devotes 5 bits for every basicRGB color (15-bit RGB) plus a remaining bit as the "alpha channel".
Screendoor transparency shouldbe utilize to simulate partial occlusion where only 1-bit alpha is available.
For some app, a single alpha channel is not sufficient: a stained-glass window, for instance, requires a separate transparency channel for each RGB channel to model the red, green and blue transparency separately. More alpha channels shouldbe added for accurate spectral color filtration app.
This section possibly include original research. (March 2021)
A third approach is found by starting out with two very easyassumptions. For simplicity, we shall here utilizethe shorthand notation for representing the over operator.
The first assumption is that in the case where the background is opaque (i.e. ), the over operator represents the convex combination of and :
The second assumption is that the operator must respect the associative rule:
Now, allowus assume that and have variable transparencies, whereas is opaque. We're interested in finding
We know from the associative rule that the following must be true:
We know that is opaque and thus follows that is opaque, so in the above equation, each operator shouldbe written as a convex combination:
Hence we see that this represents an equation of the form . By setting and we get
which means that we have analytically derived a formula for the output alpha and the output color of .
An even more compact representation is given by noticing that :
Tags: Alpha Compositing tricks tips, Alpha Compositing hack download, Alpha Compositing cheat engine, Alpha Compositing hack tool, Alpha Compositing cheats online