Как добавить камеру в поворот Matrix4x4
Я пытаюсь повернуть куб, используя System.Numerics.Matrix4x4 и SDL2 для графического вывода. Мне трудно понять концепцию вращения матрицы.
Я могу сделать это так:
matrix *= Matrix4x4.CreateRotationX(deg);
matrix *= Matrix4x4.CreateRotationY(deg);
matrix *= Matrix4x4.CreateRotationZ(deg);
Затем я использую Vector3.Transform() для точек в кубе и рисую линии между ними. Выглядит... хорошо, он вращается на месте. Но как мне получить перспективу? Как вставить камеру в микс?
Как насчет этого метода:
matrix *= Matrix4x4.CreateFromAxisAngle(new Vector3(2, 2, 2), (float)rad);
Я не уверен, как я должен использовать вектор там, или что он должен делать. Мой куб странно растёт и растягивается... см. Рис., Когда матрица применяется к кубу на 10, 45 и 90 градусов:
https://www.dropbox.com/s/hui5jvky7cexciq/10_45_90.png?dl=0
Как я должен сделать это правильно?