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 方向的视野,以弧度表示。

Aspect [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