Поделиться через


Функция D3DXMatrixPerspectiveFovRH (D3dx9math.h)

Примечание

Служебная библиотека D3DX является устаревшей. Вместо этого рекомендуется использовать DirectXMath .

Строит правовинтовую матрицу перспективной проекции на основании поля зрения.

Синтаксис

D3DXMATRIX* D3DXMatrixPerspectiveFovRH(
  _Inout_ D3DXMATRIX *pOut,
  _In_    FLOAT      fovy,
  _In_    FLOAT      Aspect,
  _In_    FLOAT      zn,
  _In_    FLOAT      zf
);

Параметры

pOut [in, out]

Тип: D3DXMATRIX*

Указатель на структуру D3DXMATRIX , которая является результатом операции.

fovy [in]

Тип: FLOAT

Поле зрения в направлении y в радианах.

Аспект [in]

Тип: FLOAT

Пропорции, определяемые как ширина пространства представления, делимая на высоту.

zn [in]

Тип: FLOAT

Z-значение ближней плоскости представления.

zf [in]

Тип: FLOAT

Z-значение дальней плоскости представления.

Возвращаемое значение

Тип: D3DXMATRIX*

Указатель на структуру D3DXMATRIX , которая является матрицей проекции правой руки.

Комментарии

Возвращаемое значение для этой функции является тем же значением, которое возвращается в параметре pOut . Таким образом, функцию D3DXMatrixPerspectiveFovRH можно использовать в качестве параметра для другой функции.

Чтобы изменить ось пропорций, используйте формулу вычисления: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspect). Кроме того, можно добавить переменные пропорций X и Y в структуру для масштабирования пространства вертикального представления: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspectY), aspect = aspectX * aspect Y.

Эта функция вычисляет возвращаемую матрицу, как показано ниже.

xScale     0          0              0
0        yScale       0              0
0        0        zf/(zn-zf)        -1
0        0        zn*zf/(zn-zf)      0
where:
yScale = cot(fovY/2)

xScale = yScale / aspect ratio

Требования

Требование Значение
Заголовок
D3dx9math.h
Библиотека
D3dx9.lib

См. также раздел

Математические функции

D3DXMatrixPerspectiveRH

D3DXMatrixPerspectiveLH

D3DXMatrixPerspectiveFovLH

D3DXMatrixPerspectiveOffCenterRH

D3DXMatrixPerspectiveOffCenterLH