Freigeben über


Kameraraumtransformationen

Scheitelpunkte im Kamerabereich werden berechnet, indem die Objektvertices mit der Weltansichtsmatrix transformiert werden.

V = V * wvMatrix

Vertexnormale werden im Kamerabereich berechnet, indem die Objektnormalen mit der umgekehrten Transponierung der Weltansichtsmatrix transformiert werden. Die Weltansichtsmatrix kann orthogonal sein.

N = N * (wvMatrix⁻¹)T

Die Matrixinversion und Matrixtransponierung werden mit einer 4x4-Matrix ausgeführt. Die Multiplikation kombiniert die Normalität mit dem 3x3-Teil der resultierenden 4x4-Matrix.

Wenn der Renderzustand auf die Normalisierung festgelegt ist, werden vertexnormale Vektoren nach der Transformation in den Kameraraum wie folgt normalisiert:

N = Norm(N)

Die Lichtposition im Kamerabereich wird berechnet, indem die Position der Lichtquelle mit der Ansichtsmatrix transformiert wird.

Lp = Lp * vMatrix

Die Richtung zum Licht im Kamerabereich für ein direktionales Licht wird berechnet, indem die Lichtquellenrichtung durch die Ansichtsmatrix, Normalisierung und Negierung des Ergebnisses multipliziert wird.

Ldir = -norm(Ldir * wvMatrix)

Für ein Punktlicht und ein Spotlight wird die Richtung des Lichts wie folgt berechnet:

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

Parameter Standardwert Typ Beschreibung
Ldir N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Richtungsvektor vom Objektvertex zum Licht
V N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Vertexposition im Kamerabereich
wvMatrix Identität 4x4-Matrix von Gleitkommawerten Zusammengesetzte Matrix, die die Welt- und Ansichtstransformationen enthält
N N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Vertexnormal
Lp N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Lichtposition im Kamerabereich
vMatrix Identität 4x4-Matrix von Gleitkommawerten Matrix, die die Ansichtstransformation enthält

 

Mathematik der Beleuchtung