Computergrafik

Shadow Volumes

Spiegelungen | | Shadow Maps

Shadow Volumes sind eine wohlbekannte Echtzeit-Technik, um den Schattenwurf von beliebigen 3D Objekten zu reproduzieren.

Dazu werden an der Silhoutte die Schattenstrahlen aller 3D Objekte weiterverfolgt und daraus geometrisch ein Dreicksnetz konstruiert, welches das Volumen umschließt, welches den Schattenbereich darstellt.

Ein Fragment der Szene ist dann im Schatten, wenn es in einem oder mehreren Schattenvolumen enthalten ist. Auf dem Sichtstrahl kann dies entschieden werden, indem man jeweils entlang der Sichtrichtung die Differenz der überquerten sichtbaren Front- (#f) und Back-Faces betrachtet. Nur wenn die Differenz Null beträgt, ist das jeweilige Fragment beleuchtet.

Die Standard-Implementierung verwendet dafür den Stencil Buffer, indem er bei Front-Faces inkrementiert wird, und bei Back-Faces dekrementiert wird. Nicht sichtbare Faces des Schattenvolumens werden durch den Z-Buffer unterdrückt. Dazu werden 3 Passes benötigt (Front, Back, Lit).

Vorteil: Das Verfahren ist Pixel-genau.

Nachteil: Stencil-Buffer benötigt. Die Konstruktion der Schattenvolumen ist geometrisch aufwendig und muss bei jeder Positionsänderung der Lichtquelle erneuert werden.

Eine Methode [1], welche ohne Stencil-Buffer auskommt, verwendet dazu den Alpha-Kanal und Blending, so dass jeweils der alpha Wert an einer Schattengrenze verdoppelt oder halbiert wird. Alpha-Werte von Null entsprechen dann einem beleuchteten Fragment.

Literatur:


Spiegelungen | | Shadow Maps

Options: