Transformationen des Kameraraums (Direct3D 9)
Scheitelpunkte im Kamerabereich werden berechnet, indem die Objektvertices mit der Weltansichtsmatrix transformiert werden.
V = V * wvMatrix
Vertexnormale im Kameraraum werden berechnet, indem die Objektnormale mit der umgekehrten Transponierung der Weltsichtmatrix transformiert werden. Die Weltansichtsmatrix kann orthogonal sein oder nicht.
N = N * (wvMatrix⁻¹)T
Die Matrixinversion und die Matrixtransponierung arbeiten auf einer 4x4-Matrix. Die Multiplikation kombiniert die Normalität mit dem 3x3-Teil der resultierenden 4x4-Matrix.
Wenn der Renderzustand D3DRENDERSTATE_NORMALIZENORMALS auf TRUE festgelegt ist, werden vertexnormale Vektoren nach der Transformation in den Kameraraum wie folgt normalisiert:
N = Norm(N)
Die Lichtposition im Kameraraum wird berechnet, indem die Position der Lichtquelle mit der Ansichtsmatrix transformiert wird.
Lp = Lp * vMatrix
Die Richtung zum Licht im Kameraraum für ein gerichtetes Licht wird berechnet, indem die Lichtquellenrichtung mit der Ansichtsmatrix multipliziert, normalisiert und das Ergebnis negiert wird.
Ldir = -norm(Ldir * wvMatrix)
Für die D3DLIGHT_POINT und D3DLIGHT_SPOT 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 | – | D3DVECTOR | Richtungsvektor vom Objektvertex zum Licht |
V | – | D3DVECTOR | Vertexposition im Kamerabereich |
wvMatrix | Identität | D3DMATRIX | Zusammengesetzte Matrix, die die Welt- und Ansichtstransformationen enthält |
N | – | D3DVECTOR | Scheitelpunktnormal |
Lp | – | D3DVECTOR | Lichtposition im Kamerabereich |
vMatrix | Identität | D3DMATRIX | Matrix mit der Ansichtstransformation |
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für