Normale
Aus DGL Wiki
Version vom 1. August 2004, 20:16 Uhr von Flash (Diskussion | Beiträge)
Inhaltsverzeichnis
Normalen
Was ist das?
Eine Normale ist ein Vektor.
Wozu brauch ich Normalen?
Normalen haben in OpenGL zwei zentrale Aufgaben.
- Sie zeigen welche Flächenseite die Vorderseite ist (anhand des Vorzeichens).
- Sie bestimmen wie Licht von der Fläche reflektiert wird.
Wie berechne ich Normalen?
Normalen sind Flächennormalen. Das heißt, sie stehen senkrecht auf einer Fläche.
Welche Fläche?
Eine beliebige...
Ersteinmal eine kurze Zusammenfassung.
- Flächen bestehen aus Polygonen.
- Polygone bestehen aus n Dreiecken.
- Jedes Dreieck ist definiert durch seine 3 Eckpunkte.
- 3 Punkte liegen immer in einer Ebene
Wenn man nun die Normale eines Dreiecks berechnen will geht man folgenermaßen vor:
- Einen Eckpunkt als Bezugspunkt (P0) wählen.
- Die beiden Vektoren v1 = P1-P0 und v2 = P2-P0 bestimmen.
- Diese beiden Kreuzmultiplizieren <v1,v2>. (steht in jedem Tafelwerk unter Kreuzprodukt)
Das Ergebnis ist die Normale des Dreiecks und damit auch der gesamten Ebene in der das Dreieck liegt.
Mit glNormal hat man in OpenGL expliziet die Möglichkeit einer Fläche eine Normale zu zuweisen. Diese muss nicht senkrecht (wie eine echte Normale) auf dieser Fläche stehen. Damit hat man die Möglichkeit, die Beleuchtung von Flächen gezielt zu manipulieren.