Handling Transparency

To handle transparent objects, we can add a 4th channel to color, $\alpha$ = opacity, range [0,1]

Transparency = 1 - Opacity

Applications: Image compositing, particle rendering, volume rendering

Blending

Two ways to represent colors: pre-multiplied and straight alpha

Operators: over, in , out , atop, xor

Straight:

$$ c_0 = \frac{c_f\alpha_f + c_b\alpha_b(1-\alpha_f)}{\alpha_f + \alpha_b(1-\alpha_f)} $$

Pre-multiplied

$c_0 = c_f + c_b(1-\alpha_f)$ ($c_f$ → color of front, $c_b$ → color of back )

$\alpha_0 = \alpha_f + \alpha_b(1-\alpha_f)$

Procedural Models

For modeling cloud, smoke, water, crowd, flock: using behavior

This model describes objects in an algorithmic manner (spheres and ellipsoids), generate polys only when necessary. It also combine computer graphics with physical laws or for modeling solid objects

Particle Rendering

Sprites vs Billboards (always facing toward the camera)

Volume Rendering

2D projection of 3D sampled dataset

Volume rendering algorithms:

Usually no illumination or shadows, just compositing

Therefore only ray-casting, no recursive ray-tracing

No perspective, only parallel projection

Voxels