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

В строках 12-15 вспомогательные функции DirectX D3DXMatrixRota-tionX(), D3DXMatrixRotationY() и D3DXMatrixRotationZ() используются для создания матриц вращения. Это матрицы 4x4, в которых используются рассмотренные нами ранее в этой главе однородные координаты. Возможно, вы поняли из названия функций, что функция D3DXMat-rixRotationX () создает матрицу вращения вокруг оси х, а функции D3DXMatrixRotationY () и D3DXMatrixRotationZ () создают матрицы вращения вокруг осей у и z, соответственно.

Замечание

Вспомогательные функции DirectX не являются встроенной частью API DirectX. Это набор дополнительных функций. Для выполнения своих задач они обращаются к API DirectX. Однако использование этих функций упрощает многие аспекты работы с DirectX.

Для отображения процесса вращения треугольника программе нужно объединить три матрицы вращения в одну. Функция UpdateFrame () делает это с помощью перемножения матриц. В строке 15 она вызывает еще одну вспомогательную функцию DirectX D3DXMatrixMultiply (), чтобы перемножить матрицы rotationX и rotationY и сохранить результат перемножения в матрице worldMatrix. Затем с помощью еще одного вызова функции D3DXMatrixMultiply () матрица worldMatrix умножается на матрицу rotationZ и результат записывается обратно в матрицу worldMatrix. Таким образом объединяются три матрицы вращения.

Затем в строке 21 вызывается функция LPDIRECT3DDEVICE9: : Set-Transform (), которая выбирает матрицу worldMatrix в качестве глобальной матрицы. Когда DirectX выполняет рендеринг вертексного буфера, выполняются преобразования согласно глобальной матрице, которая в свою очередь преобразует локальные координаты в глобальные, как обсуждалось выше.

В строке 23 задается вектор, определяющий местоположение камеры (наблюдателя) - eyePoint. Это простой способ размещения наблюдателя в ЗО-мире. В строке 22 задается еще одна точка, в направлении которой смотрит камера, - lookatPoint. Кроме того, DirectX нужно знать, какое направление считать направлением вверх при рендеринге. В строке 25 задается точка, направление на которую считается направлением вверх, -upDirection. Использование этих трех точек (или векторов) показано на рисунке 5.9.








Новости
Список персонажей SoulCalibur 6 пополнил Вольдо
В Сети появился новый трейлер SoulCalibur 6, посвящённый Вольдо — он пополнил список персонажей, которые будут доступны в день релиза игры.
Анонсирован скорый выход обновления «Ночная жизнь» в GTA Online
Компания Rockstar представила трейлер обновления «Ночная жизнь» для GTA Online.