Конгер Д.
Физика для разработчиков компьютерных игр
стр. 119

Если ваша игра использует однородные координаты, она может умножать векторы на матрицы преобразований стандартным способом. Кроме того, можно будет объединять преобразования, преобразовывая их матрицы в одну с помощью перемножения.

Чтобы использовать однородные координаты в 3D, нужно добавить к каждому вертексу в программе еще один координатный компонент. При этом точки будут определяться не как (х, у, z), а как (х, у, z, w). Компонент w - это однородная координата w. Его единственное назначение - сделать возможным представление преобразований в виде матриц. Мы будем присваивать этому компоненту значение 1. Ему можно присваивать и другие значения, но для работы над нашей книгой в этом нет необходимости.

Значит ли это, что нужно добавить еще один компонент со значением 1 к координатам каждого объекта?

К счастью, нет. Direct3D делает присутствие четвертой координаты практически незаметным для программиста. Для вертексов задаются координаты х, у и z, и Direct3D предоставляет функции для построения матриц преобразований, основанных на однородных координатах. Если вы приказываете Direct3D выполнить преобразование, он автоматически преобразует координаты х, у, z в х, у, z, w и перемножает их с матрицей преобразования.

Но если Direct3D делает все за нас, то зачем вообще говорить о четвертой координате?

В следующем разделе вы узнаете, как выполняются математические преобразования в трехмерных пространствах. Эти математические преобразования требуют применения однородных координат.

Перемещение

Перемещение вектора в трехмерных координатах выполняется практически так же, как и в двумерных - сложением вектора с вектором смещения t, представляющим перемещение.

х' = х + t

Если вернуться к главе 4, вы увидите, что в двумерных координатах для перемещения используется в точности такое же уравнение. Единственное отличие заключается в том, что вместо двумерных векторов теперь мы будем использовать трехмерные.

Мы будем использовать однородную координату w в ЗО-преобразова-ниях — каждый вектор будет состоять из 4 компонентов, а каждая матрица преобразования будет иметь размер 4x4:









Новости
Rust на Марсе с элементами PUBG
Выживать, как и следует из названия, придётся на Марсе. Помимо самого выживания, в игре присутствует и сюжет.
Переиздание Age of Empires выйдет 20 февраля
Как заявлено теперь, Age of Empires: Definitive Edition станет доступна на ПК с Windows 10 с 20 февраля 2018 года.