XNA View Matrix - Buscando explicación

Estoy teniendo algunos problemas serios para entender la matriz de vistas en XNA. He llegado bastante lejos con todas las otras partes y, como acabo de aprender las matemáticas requeridas, no quiero usar las funciones integradas de Matrix sin entender qué hacen primero.

Ahora comprendo los conceptos básicos de la rotación, la proyección y la traducción, pero no puedo entender cómo funciona la matriz de vistas en XNA.

De lo que he reunido, la matriz de vista debería transformar el "mundo" en su propio espacio. Parece razonable, pero el método Matrix.CreateLookAt en la biblioteca es bastante desconcertante.

He establecido (a través del examen de los resultados de la función de biblioteca) que estas dos piezas de código producen los mismos resultados:

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

¿Por qué voltear los ejes X y Z? Pensé que deberías rotar el mundo según la rotación de las cámaras, pero en la dirección opuesta, y luego traducir el mundo por la misma cantidad en la dirección opuesta.

¿O no se usa la matriz de la vista como una transformación, sino que simplemente codifica la posición y la rotación de la cámara en el mundo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta