XNA View Matrix - Ищу объяснение

У меня серьезные проблемы с пониманием матрицы представления в XNA. Я довольно далеко продвинулся во всех остальных частях, и, поскольку я только что выучил себе необходимую математику, я не хочу использовать встроенные функции Matrix, не понимая, что они делают в первую очередь.

Теперь я понимаю основы вращения, проекции и перевода, но не могу понять, как работает матрица представления в XNA.

Исходя из того, что я понял, матрица представлений должна трансформировать «мир» в свое собственное пространство. Кажется разумным, но метод Matrix.CreateLookAt в библиотеке довольно озадачивает.

Я установил (проверяя, что выводит библиотечная функция), что эти два фрагмента кода дают одинаковые результаты:

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

Зачем переворачивать оси X и Z? Я думал, что вы должны вращать мир в соответствии с вращением камер, но в противоположном направлении, а затем перевести мир на ту же величину в противоположном направлении.

Или матрица вида вообще не используется как преобразование, а просто кодирует положение и поворот камеры в мире?

Ответы на вопрос(4)

Ваш ответ на вопрос