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
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅