Kameraraumtransformationen

Scheitelpunkte im Kameraraum werden berechnet, indem die Objektvertices mit der Weltsichtmatrix transformiert werden.

V = V * wvMatrix

Vertexnormale werden im Kameraraum berechnet, indem die Objektnormale mit der umgekehrten Transponierung der Weltsichtmatrix transformiert werden. Die Weltsichtmatrix kann orthogonal sein oder nicht.

N = N * (wvMatrix⁻¹)T

Die Matrixinversion und Matrixtransponierung arbeiten auf einer 4x4-Matrix. Die Multiplikation kombiniert den Normal mit dem 3x3-Teil der resultierenden 4x4-Matrix.

Wenn der Renderzustand auf normalisieren festgelegt ist, werden Vertex-Normalvektoren nach der Transformation in den Kameraraum wie folgt normalisiert:

N = Norm(N)

Die Lichtposition im Kameraraum wird berechnet, indem die Lichtquellenposition mit der Ansichtsmatrix transformiert wird.

Lp = Lp * vMatrix

Die Richtung zum Licht im Kameraraum für ein richtungsgerichtetes Licht wird berechnet, indem die Lichtquellenrichtung mit der Ansichtsmatrix multipliziert, normalisiert und das Ergebnis negiert wird.

Ldir = -norm(Ldir * wvMatrix)

Für ein Punktlicht und einen Scheinwerfer wird die Richtung zum Licht wie folgt berechnet:

Ldir = norm(V - Lp), wobei die Parameter in der folgenden Tabelle definiert sind.

Parameter Standardwert Typ BESCHREIBUNG
Ldir 3D-Vektor (Gleitkommawerte x, y und z) Richtungsvektor vom Objektvertex zum Licht
V 3D-Vektor (Gleitkommawerte x, y und z) Scheitelpunktposition im Kameraraum
wvMatrix Identität 4x4-Matrix mit Gleitkommawerten Zusammengesetzte Matrix, die die Welt- und Sichttransformationen enthält
N 3D-Vektor (Gleitkommawerte x, y und z) Scheitelpunkt normal
Lp 3D-Vektor (Gleitkommawerte x, y und z) Lichtposition im Kameraraum
vMatrix Identität 4x4-Matrix mit Gleitkommawerten Matrix mit der Ansichtstransformation

 

Beleuchtungsmathematik