Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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