Преобразование представления
Преобразование представления находит средство просмотра в мировом пространстве, преобразуя вершины в пространство камеры. В пространстве камеры, камера или зритель, находится в источнике, глядя в положительном z-направлении. Матрица представления перемещает объекты в мире вокруг позиции камеры - источник пространства камеры - и ориентация. Direct3D использует левую систему координат, поэтому z является положительным в сцене.
Существует множество способов создания матрицы представления. Во всех случаях камера имеет некоторую логическую позицию и ориентацию в пространстве мира, которая используется в качестве отправной точки для создания матрицы представления, которая будет применяться к моделям в сцене. Матрица представления преобразует и поворачивает объекты, чтобы поместить их в пространство камеры, где камера находится в источнике. Одним из способов создания матрицы представления является объединение матрицы перевода с матрицами поворота для каждой оси. В этом подходе применяется следующее общее уравнение матрицы.
В этой формуле V — это созданная матрица представления, T — это матрица перевода, которая перемещает объекты в мире, а Rₓ через RZ — матрицы поворота, которые поворачивают объекты вдоль оси X, Y и Z. Матрицы перевода и поворота основаны на логическом положении и ориентации камеры в мировом пространстве. Таким образом, если логическая позиция камеры в мире составляет <10 20 1000>, цель матрицы перевода — переместить объекты -10 единиц вдоль оси X, -20 единиц вдоль оси Y и -100 единиц вдоль оси z. Матрицы поворота в формуле основаны на ориентации камеры с точки зрения того, сколько осей камеры поворачиваются вне выравнивания с мировым пространством. Например, если камера, упомянутая ранее, указывает прямо вниз, ее ось z составляет 90 градусов (pi/2 радианы) вне выравнивания с осью z мирового пространства, как показано на следующем рисунке.
Матрицы поворота применяют повороты равных, но наоборот, величины к моделям в сцене. Матрица представления для этой камеры включает поворот -90 градусов вокруг оси x. Матрица поворота объединяется с матрицей перевода, чтобы создать матрицу представления, которая настраивает положение и ориентацию объектов в сцене таким образом, чтобы их верхняя часть сталкивается с камерой, что дает вид, который камера находится над моделью.
Настройка матрицы представления
Direct3D использует матрицы мира и представления для настройки нескольких внутренних структур данных. Каждый раз, когда вы устанавливаете новую матрицу мира или представления, система пересчитывает связанные внутренние структуры. Настройка этих матриц часто занимает много времени. Можно свести к минимуму количество необходимых вычислений, объединив мир и матрицы представления в матрицу мирового представления, которую вы задали в качестве матрицы мира, а затем установив матрицу представления для удостоверения. Сохраняйте кэшированные копии отдельных миров и матрицы представления, которые можно изменять, объединять и сбрасывать матрицу мира по мере необходимости.
Связанные темы