Конгер Д.
Физика для разработчиков компьютерных игр
стр. 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.








Новости
Владельцы Dark Souls в Steam получат скидку на Dark Souls Remastered
В то время, как подавляющее большинство компаний хлебом не корми - дай только в очередной раз содрать полную сумму за какое-нибудь переиздание, эти благородные японцы объявили о том, что все владельцы оригинальной Dark Souls (Prepare to Die Edition в Steam) получат… нет, не Dark Souls Remastered бесплатно, а скидку на неё.
Tencent вложит $ 15 млн в продвижение Fortnite в Китае
Китайская корпорация Tencent займётся продвижением Fortnite в Китае.