Funzione D3DXMatrixPerspectiveFovLH (D3dx9math.h)
Nota
La libreria di utilità D3DX è deprecata. È consigliabile usare invece DirectXMath .
Crea una matrice di proiezione prospettica sinistrorsa basata su un campo visivo.
Sintassi
D3DXMATRIX* D3DXMatrixPerspectiveFovLH(
_Inout_ D3DXMATRIX *pOut,
_In_ FLOAT fovy,
_In_ FLOAT Aspect,
_In_ FLOAT zn,
_In_ FLOAT zf
);
Parametri
-
pOut [in, out]
-
Tipo: D3DXMATRIX*
Puntatore alla struttura D3DXMATRIX che è il risultato dell'operazione.
-
fovy [in]
-
Tipo: FLOAT
Campo di vista nella direzione y, nei radianti.
-
Aspetto [in]
-
Tipo: FLOAT
Proporzioni definite come larghezza dello spazio di visualizzazione suddivisa in base all'altezza.
-
zn [in]
-
Tipo: FLOAT
Valore Z del piano di visualizzazione vicino.
-
zf [in]
-
Tipo: FLOAT
Valore Z del piano di visualizzazione lontano.
Valore restituito
Tipo: D3DXMATRIX*
Puntatore a una struttura D3DXMATRIX che è una matrice di proiezione di prospettiva sinistra.
Commenti
Il valore restituito per questa funzione è lo stesso valore restituito nel parametro pOut . In questo modo, la funzione D3DXMatrixPerspectiveFovLH può essere usata come parametro per un'altra funzione.
Per modificare l'asse delle proporzioni, usare la formula di calcolo: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspetto). In alternativa, aggiungere variabili di proporzioni X e Y nella struttura per ridimensionare lo spazio di visualizzazione verticale: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspectY), aspetto = aspectX * aspetto Y.
Questa funzione calcola la matrice restituita come illustrato:
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
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche