Backface Culling

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der Begriff Backface Culling bezeichnet eine Technik der 3D-Computergrafik, mit der ein Großteil von nicht sichtbaren Dreiecken (oder allgemeiner: von Polygonen) einer Szene entfernt wird. Hierdurch wird die Darstellungsgeschwindigkeit erhöht. Bei einem Dreieck ist eine der zwei Seiten durch den Normalenvektor N_{P} als Vorderseite definiert.

Gibt es in der Szene nur geschlossene, massive Objekte, so blickt der Betrachter immer auf solche Vorderseiten. Es ist somit überflüssig die Rückseiten (englisch backfaces) zu zeichnen (da diese ja von anderen Dreiecken verdeckt werden).

Gehen wir also von undurchsichtigen, geschlossenen Objekten aus, so ist ein einfacher Test, um festzustellen ob eine Seite des Objektes gesehen werden kann oder nicht, die Richtung des Normalenvektors N_{P} des Dreiecks mit der Blickrichtung N zu vergleichen.

Normale des Dreiecks (Kreuzprodukt von V_{1} und V_{2}):

N_{p} = V_{1} \times V_{2}

Prüfung, ob Normale in Blickrichtung (Skalarprodukt von N_{p} und N):

N_{p} \cdot N

wobei V_{1} und V_{2} orientierte Dreieckskanten sind und N der Blickrichtungsvektor.

Ist das Ergebnis  \leq 0 , so ist die Fläche (von vorne) zu sehen, bei einem Ergebnis  > 0 nicht (bzw. nur von hinten). Das setzt voraus, dass die Flächennormalen bei einem Körper vom Körper weg zeigen. Ist eine Fläche sichtbar, werden anschließend die weiteren Schritte der Grafikpipeline durchlaufen. Ist die Fläche nicht zu sehen, durchläuft sie keine weiteren Schritte, wird also verworfen.

Das Backface Culling sollte, um den Gesamtprozess möglichst effizient zu gestalten, möglichst früh angewendet werden. Oftmals ist es der erste Schritt einer Grafikpipeline.

Analog gibt es das Frontface Culling, bei dem die Vorderseiten verworfen werden und nur die Rückseiten eines Objektes gezeichnet werden. Dies wird allerdings nur für besondere Effekte (zum Beispiel den Shadow Volumes) benötigt.

Siehe auch: Frustum Culling

Weblinks [Bearbeiten]