Função D3DXMatrixPerspectiveFovLH (D3dx9math.h)
Observação
A biblioteca de utilitários D3DX foi preterida. Em vez disso, recomendamos que você use DirectXMath .
Cria uma matriz de projeção de perspectiva à esquerda com base em um campo de visão.
Sintaxe
D3DXMATRIX* D3DXMatrixPerspectiveFovLH(
_Inout_ D3DXMATRIX *pOut,
_In_ FLOAT fovy,
_In_ FLOAT Aspect,
_In_ FLOAT zn,
_In_ FLOAT zf
);
Parâmetros
-
pOut [in, out]
-
Tipo: D3DXMATRIX*
Ponteiro para a estrutura D3DXMATRIX que é o resultado da operação.
-
fovy [in]
-
Tipo: FLOAT
Campo de exibição na direção y, em radianos.
-
Aspecto [in]
-
Tipo: FLOAT
Taxa de proporção, definida como largura do espaço de exibição dividida por altura.
-
zn [in]
-
Tipo: FLOAT
Valor Z do plano de exibição próximo.
-
zf [in]
-
Tipo: FLOAT
Valor Z do plano de exibição distante.
Valor retornado
Tipo: D3DXMATRIX*
Ponteiro para uma estrutura D3DXMATRIX que é uma matriz de projeção de perspectiva à esquerda.
Comentários
O valor retornado para essa função é o mesmo valor retornado no parâmetro pOut . Dessa forma, a função D3DXMatrixPerspectiveFovLH pode ser usada como um parâmetro para outra função.
Para alterar o eixo da taxa de proporção, use a fórmula de cálculo: fovy = 2 * math.atan(math.tan(fovy * 0.5) / aspect). Como alternativa, adicione variáveis de taxa de proporção X e Y na estrutura para dimensionar o espaço de exibição vertical: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspectY), aspect = aspectX * aspect Y.
Essa função calcula a matriz retornada, conforme mostrado:
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 | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também