Что такое матрица 4×4 в трехмерных играх?

Когда я впервые столкнулся с преобразованием координат в программировании игр — это был, мягко говоря, шок. Высшую математику в техникуме я усердно прогуливал, а если присутствовал, то только для галочки. Потому что мне неинтересно вручную рисовать матрицы, потом их умножать, транспонировать, инвертировать и находить детерминант или определитель.

Ну согласитесь — нормального человека нельзя заставить умножать и складывать 32 числа непонятно для какой цели.. Тупо делать это только ради оценки в журнале. Я так не умею, а Вы?

Итак, что же такое матрица 4×4? Какую роль она играет в трехмерных играх? Зачем эти 16 чисел складывать и умножать? СКАНДАЛЫ, ИНТРИГИ, РАССЛЕДОВАНИЯ.. Читайте дальше в моем журнале после короткой рекламы.

Рассмотрим абстрактную матрицу, в которой злой гений зашифровал положение объекта в трехмерном мире:

M=\begin{bmatrix}A&E&I&M\\B&F&J&N\\C&G&K&O\\D&H&L&P\end{bmatrix}

Начнем расшифровку.. В матрице присутствуют три вектора, вот они перед Вами:

\vec{X}=(A, B, C)
\vec{Y}=(E, F, G)
\vec{Z}=(I, J, K)

Как нетрудно догадаться, это вектора осей системы координат. Длина этих векторов — это масштаб объект вдоль каждого вектора.

Рассмотрим такую матрицу:

M=\begin{bmatrix}2&0&0&M\\0&3&0&N\\0&0&0.5&O\\D&H&L&P\end{bmatrix}

Что следует из этой матрицы? Во-первых, по X объект увеличен в два раза, по Y в три раза, по Z уменьшен в два раза.

Смотрим дальше. Числа M, N и O — это смещение объекта вдоль этих векторов (по X, Y и Z соответственно).

С остальными числами я пока не разобрался. Число P практически всегда равно единице, остальные — нулю. Есть подозрение, что они имеют отношение к проецированию трехмерного объекта на двухмерный экран.

Ссылка на подробный обзор матриц и операций на ними из комментариев: http://www.opengl-tutorial.org/ru/beginners-tutorials/tutorial-3-matrices/

7 комментариев
  1. написал(а) Команда YoWindow (8 ноября 2013, 18:46)

    Матрица не видна на iPhone :-(

  2. написал(а) Команда YoWindow (8 ноября 2013, 18:46)

    Ой, теперь видна.

    1. написал(а) eJ (8 ноября 2013, 22:10)

      Известное правило админов «решай проблему пользователя с 15-минутной задержкой и он решит ее сам» в действии. :)

    1. написал(а) eJ (16 апреля 2017, 16:21)

      Вы так это пишете, как будто ваше мнение мне интересно. :)

  3. написал(а) Знает матрицы (27 июня 2023, 14:46)

    Мега топ имба все понял теперь я очень умный чувствую себя кемто очень умным да понятно очень сильно да топ хз че еще сказать матрицы это так изи ваще легко раньше я рил как тупой дебил не шарил за эту супер легкую тему прогуливал садик школу университет работу вообще все прогуливал ничего не умел а вот благодаря этой статье все круто терь❤️🧠

    1. написал(а) eJ (28 июня 2023, 09:39)

      Молодец! Держи лойс!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Блог Евгения Жирнова