D3DXMatrixPerspectiveFovRH-Funktion (D3dx9math.h)
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 [ in, out]
-
Typ: D3DXMATRIX*
Zeiger auf die D3DXMATRIX-Struktur, die das Ergebnis des Vorgangs ist.
-
folow [ In]
-
Typ: FLOAT
Sichtfeld in y-Richtung im Bogenmaß.
-
Aspect [ In]
-
Typ: FLOAT
Seitenverhältnis, definiert als Ansichtsraumbreite dividiert durch Höhe.
-
zn [ In]
-
Typ: FLOAT
Z-Wert der Nahansichtsebene.
-
( ) [ In]
-
Typ: FLOAT
Z-Wert der fernen Ansichtsebene.
Rückgabewert
Typ: D3DXMATRIX*
Zeiger auf eine D3DXMATRIX-Struktur, bei der es sich um eine rechtshändige Perspektivprojektionsmatrix handelt.
Hinweise
Der Rückgabewert für diese Funktion ist der gleiche Wert, der im pOut-Parameter zurückgegeben wird. Auf diese Weise kann die D3DXMatrixPerspectiveFovRH-Funktion als Parameter für eine andere Funktion verwendet werden.
Um die Seitenverhältnisachse zu ändern, verwenden Sie die Berechnungsformel: folow = 2 * math.atan(math.tan(fo unicode * 0,5) / aspect). Alternativ können Sie X- und Y-Seitenverhältnisvariablen in der Struktur hinzufügen, um den vertikalen Ansichtsraum zu skalieren: fo skalierung = 2 * math.atan(math.tan(folow * 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 |
|