D3DXMatrixPerspectiveFovRH-Funktion (D3dx9math.h)
Hinweis
Die D3DX-Hilfsprogrammbibliothek ist veraltet. Es wird empfohlen, stattdessen DirectXMath zu verwenden.
Erstellt eine rechtshändige perspektivische Projektionsmatrix auf der Grundlage eines Sichtfelds.
Syntax
D3DXMATRIX* D3DXMatrixPerspectiveFovRH(
_Inout_ D3DXMATRIX *pOut,
_In_ FLOAT fovy,
_In_ FLOAT Aspect,
_In_ FLOAT zn,
_In_ FLOAT zf
);
Parameter
-
pOut [ein, aus]
-
Typ: D3DXMATRIX*
Zeiger auf die D3DXMATRIX-Struktur , die das Ergebnis des Vorgangs ist.
-
fovy [in]
-
Typ: FLOAT
Sichtfeld in y-Richtung, in Bogen.
-
Aspekt [in]
-
Typ: FLOAT
Seitenverhältnis, definiert als Ansichtsraumbreite geteilt durch Höhe.
-
zn [in]
-
Typ: FLOAT
Z-Wert der Nahansichtsebene.
-
zf [in]
-
Typ: FLOAT
Z-Wert der fernen Sichtebene.
Rückgabewert
Typ: D3DXMATRIX*
Zeiger auf eine D3DXMATRIX-Struktur , die eine rechtshändige Perspektivprojektionsmatrix ist.
Bemerkungen
Der Rückgabewert für diese Funktion ist derselbe Wert, der im pOut-Parameter zurückgegeben wird. Auf diese Weise kann die D3DXMatrixPerspectiveFovRH-Funktion als Parameter für eine andere Funktion verwendet werden.
Verwenden Sie zum Ändern der Seitenverhältnisachse die Berechnungsformel: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspect). Alternativ können Sie X- und Y-Seitenverhältnisvariablen in der Struktur hinzufügen, um den vertikalen Ansichtsraum zu skalieren: fovy = 2 * math.atan(math.tan(fovy * 0.5) / aspectY), aspect = aspectX * aspect Y.
Diese Funktion berechnet die zurückgegebene Matrix wie gezeigt.
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
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch