Как добавить камеру в поворот 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

Как я должен сделать это правильно?

0 ответов

Другие вопросы по тегам