Matryca XNA View - szukanie wyjaśnień

Mam poważne problemy ze zrozumieniem macierzy widoku w XNA. Dotarłem całkiem daleko ze wszystkimi pozostałymi częściami, a ponieważ właśnie nauczyłem się wymaganych matematyki, nie chcę używać wbudowanych funkcji Matrix bez zrozumienia, co robią najpierw.

Teraz rozumiem podstawy rotacji, projekcji i tłumaczenia, ale przez całe życie nie rozumiem, jak matryca widoku działa w XNA.

Z tego, co zebrałem, matryca widoku powinna przekształcić „świat” w swoją własną przestrzeń. Wydaje się rozsądne, ale metoda Matrix.CreateLookAt w bibliotece jest dość zagadkowa.

Ustaliłem (poprzez zbadanie, co wychodzi funkcja biblioteczna), że te dwa fragmenty kodu dają takie same wyniki:

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

Po co odwracać osie X i Z? Myślałem, że powinieneś obracać świat zgodnie z ruchem kamery, ale w przeciwnym kierunku, a następnie przetłumaczyć świat o tę samą wartość w przeciwnym kierunku.

Czy też matryca widoku nie jest w ogóle używana jako transformacja, a jedynie koduje pozycję i obrót kamery na świecie?

questionAnswers(4)

yourAnswerToTheQuestion