Warning: these notes are very sketchy.

Transparency

There are two models of transparency commonly used: interpolated and filtered. Both these assume no refraction, which can be expensive to compute. For the interpolated model: the final intensity, I, at pixels where a transparent (or more precisely, translucent) object, A, intersects another object, B, behind it, is given by (1-kt)IA + ktIB, where IB is the color of light being transmitted i.e. the computed intensity of B) and IA is the computed intensity of A. The transmission coefficient, kt, is also called transparency and lies in the range [0.0, 1.0]. A completely transparent material has kt = 1 and a completely opaque material has kt = 0. We often describe the color of an object by an [R,G,B,A] 4-tuple, where A, also called the alpha value, is kt The filtered transparency model stipulates the final color as: IA + ktOtIB, where Ot is the transparency or filter color of A.

In order to correctly compute the final color at each pixel, we must rasterize polygons in the back to front order. This in general is quite expensive. A multi-pass algorithm by Mammen renders all transparent objects in a special buffer and all opaque objects using the regular Z-buffer. The special transparency-buffers store an activity flag for each pixel, which is initialized to 0. The Z-values in the transparency Z-buffer are initialized to the closest possible Z value.

All the opaque objects are rendered first using the standard technique. Next, multiple passes processing the transparent polygons in the back to front order is done as follows:

Screen-door transparency algorithm is a less expensive technique. This techniques represents each polygon as a fine mesh of wires. Higher the intended opacity, denser the mesh. The results of this algorithms are not as impressive, as this technique compromises resolution. In addition, interaction between two overlapping meshes can generate aliasing artifacts and there is no direct control over how much of a mesh behind another mesh of equal transparency shows through -- the mesh in the back can be completely hidden.