Compartilhar via


Função D3DXMatrixPerspectiveFovRH (D3dx9math.h)

Observação

A biblioteca do utilitário D3DX foi preterida. Em vez disso, recomendamos que você use DirectXMath .

Cria uma matriz de projeção de perspectiva à direita com base em um campo de visão.

Sintaxe

D3DXMATRIX* D3DXMatrixPerspectiveFovRH(
  _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 destro.

Comentários

O valor retornado para essa função é o mesmo valor retornado no parâmetro pOut . Dessa forma, a função D3DXMatrixPerspectiveFovRH 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/(zn-zf)        -1
0        0        zn*zf/(zn-zf)      0
where:
yScale = cot(fovY/2)

xScale = yScale / aspect ratio

Requisitos

Requisito Valor
parâmetro
D3dx9math.h
Biblioteca
D3dx9.lib

Confira também

Funções Matemáticas

D3DXMatrixPerspectiveRH

D3DXMatrixPerspectiveLH

D3DXMatrixPerspectiveFovLH

D3DXMatrixPerspectiveOffCenterRH

D3DXMatrixPerspectiveOffCenterLH