Ich habe einige ernste Probleme, die Ansichtsmatrix in XNA zu verstehen. Ich bin mit all den anderen Teilen ziemlich weit gekommen, und da ich gerade die erforderliche Mathematik gelernt habe, möchte ich die eingebauten Matrix-Funktionen nicht verwenden, ohne zu verstehen, was sie zuerst machen.XNA View Matrix - Ich suche Erklärungen
Jetzt verstehe ich die Grundlagen der Rotation, Projektion und Übersetzung, aber ich kann nicht für das Leben von mir verstehen, wie die Ansicht Matrix in XNA funktioniert.
Von dem, was ich gesammelt habe, sollte die Ansichtsmatrix die "Welt" in ihren eigenen Raum verwandeln. Scheint sinnvoll, aber die Matrix.CreateLookAt Methode in der Bibliothek ist ziemlich rätselhaft.
I hergestellt haben (durch die Prüfung, was die Bibliotheksfunktion Ausgänge), dass diese beiden Teile des Codes, die gleichen Ergebnisse Ausbeute:
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-Achsen-Flip? Ich dachte, du solltest die Welt entsprechend der Kamera drehen, aber in die entgegengesetzte Richtung, und dann die Welt um den gleichen Betrag in die entgegengesetzte Richtung übersetzen.
Oder wird die Ansichtsmatrix überhaupt nicht als Transformation verwendet, sondern codiert nur die Position und Drehung der Kamera in der Welt?
Danke, es scheint, dass meine ursprüngliche Idee richtig war. Aber ich hatte alle diese verschiedenen Koordinatensysteme ein wenig verwirrt. – Skurmedel