XNA View Matrix - Procurando explicação

Estou com sérios problemas para entender a matriz de visualização no XNA. Eu cheguei muito longe com todas as outras partes e desde que eu acabei de aprender a matemática necessária, eu não quero usar as funções Matrix embutidas sem entender o que elas fazem primeiro.

Agora eu entendo os conceitos básicos de rotação, projeção e tradução, mas não posso, para minha vida, entender como a matriz de visualização funciona no XNA.

Pelo que eu recolhi, a matriz de visões deveria transformar o "mundo" em seu próprio espaço. Parece razoável, mas o método Matrix.CreateLookAt na biblioteca é bastante intrigante.

Eu estabeleci (examinando o que a função da biblioteca produz) que esses dois pedaços de código produzem os mesmos 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 que virar os eixos X e Z? Eu pensei que você deveria girar o mundo de acordo com a rotação da câmera, mas na direção oposta, e então traduzir o mundo na mesma direção na direção oposta.

Ou a matriz de vistas não é usada como uma transformação, mas apenas codifica a posição e rotação da câmera no mundo?

questionAnswers(4)

yourAnswerToTheQuestion