Función D3DXMatrixPerspectiveFovLH (D3dx9math.h)
Nota
La biblioteca de utilidades D3DX está en desuso. Se recomienda usar DirectXMath en su lugar.
Crea una matriz de proyección de perspectiva a la izquierda basada en un campo visual.
Sintaxis
D3DXMATRIX* D3DXMatrixPerspectiveFovLH(
_Inout_ D3DXMATRIX *pOut,
_In_ FLOAT fovy,
_In_ FLOAT Aspect,
_In_ FLOAT zn,
_In_ FLOAT zf
);
Parámetros
-
pOut [in, out]
-
Tipo: D3DXMATRIX*
Puntero a la estructura D3DXMATRIX que es el resultado de la operación.
-
fovy [in]
-
Tipo: FLOAT
Campo de vista en la dirección y, en radianes.
-
Aspecto [in]
-
Tipo: FLOAT
Relación de aspecto, definida como ancho del espacio de vista dividido por alto.
-
zn [in]
-
Tipo: FLOAT
Valor Z del plano de vista cercano.
-
zf [in]
-
Tipo: FLOAT
Valor Z del plano de vista lejano.
Valor devuelto
Tipo: D3DXMATRIX*
Puntero a una estructura D3DXMATRIX que es una matriz de proyección de perspectiva izquierda.
Observaciones
El valor devuelto de esta función es el mismo valor devuelto en el parámetro pOut . De este modo, la función D3DXMatrixPerspectiveFovLH se puede usar como parámetro para otra función.
Para cambiar el eje de relación de aspecto, use la fórmula de cálculo: fovy = 2 * math.atan(math.tan(fovy * 0.5) / aspecto). Como alternativa, agregue variables de relación de aspecto X e Y en la estructura para escalar el espacio de vista vertical: fovy = 2 * math.atan(math.tan(fovy * 0.5) / aspectY), aspect = aspectX * aspect Y.
Esta función calcula la matriz devuelta como se muestra:
xScale 0 0 0
0 yScale 0 0
0 0 zf/(zf-zn) 1
0 0 -zn*zf/(zf-zn) 0
where:
yScale = cot(fovY/2)
xScale = yScale / aspect ratio
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también