Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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