XNA Matrice de Vue - Recherche d'explication

Je vais avoir quelques problèmes de compréhension de la matrice de vue en XNA. Je suis arrivé assez loin avec toutes les autres parties et depuis que j'ai juste appris moi-même le nécessaire de maths je ne veux pas utiliser le construit dans la Matrice des fonctions sans comprendre ce qu'ils font en premier.

Maintenant, je comprends les bases de la rotation, de la projection et de la traduction, mais je ne peux pas pour la vie de me comprendre comment la matrice de vue des œuvres en XNA.

De ce que j'ai recueillies, la matrice de vue doit permettre de transformer le "monde" de son propre espace. Semble raisonnable, mais la Matrice.CreateLookAt méthode de la bibliothèque est très énigmatique.

J'ai créé (par le biais de l'examen de ce que la fonction de la bibliothèque sorties) que ces deux morceaux de code à produire les mêmes résultats:

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);

Pourquoi flip les axes X et Z? J'ai pensé que vous devriez faire tourner le monde selon les caméras de la rotation, mais dans la direction opposée, puis de traduire le monde par la même quantité dans la direction opposée.

Ou est la matrice de vue pas utilisé comme une transformation à tous, mais seulement code pour la position et la rotation de la caméra dans le monde?

InformationsquelleAutor Skurmedel | 2009-08-20