XNA View Matrix - Suche nach Erklärung

Ich habe ernsthafte Probleme beim Verstehen der View-Matrix in XNA. Ich bin mit all den anderen Teilen ziemlich weit gekommen und da ich mir gerade die erforderlichen Mathematikkenntnisse angeeignet habe, möchte ich die eingebauten Matrix-Funktionen nicht verwenden, ohne zu verstehen, was sie zuerst tun.

Jetzt verstehe ich die Grundlagen von Rotation, Projektion und Translation, aber ich kann für mein ganzes Leben nicht verstehen, wie die Ansichtsmatrix in XNA funktioniert.

Nach allem, was ich gesammelt habe, sollte die Ansichtsmatrix die "Welt" in einen eigenen Raum verwandeln. Scheint vernünftig, aber die Matrix.CreateLookAt-Methode in der Bibliothek ist ziemlich rätselhaft.

Ich habe festgestellt (indem ich untersucht habe, was die Bibliotheksfunktion ausgibt), dass diese beiden Codeteile die gleichen Ergebnisse liefern:

Matrix view = Matrix.CreateReflection(new Plane(Vector3.UnitX, 0)) * Matrix.CreateReflection(new Plane(Vector3.UnitZ, 0)) * Matrix.CreateTranslation(Position);
// ..equals this if (Position = (0 0 -5), since LookAt "looks at" but the above just looks straight down Z)..
Matrix blah = Matrix.CreateLookAt(Position, Vector3.Zero, Vector3.UnitY);

Warum die X- und Z-Achse drehen? Ich dachte, Sie sollten die Welt entsprechend der Kameradrehung drehen, aber in die entgegengesetzte Richtung, und dann die Welt um den gleichen Betrag in die entgegengesetzte Richtung verschieben.

Oder wird die Ansichtsmatrix überhaupt nicht als Transformation verwendet, sondern codiert nur die Position und Drehung der Kamera in der Welt?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage