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
D3dx9math.h
Bibliothek
D3dx9.lib

Siehe auch

Mathematische Funktionen

D3DXMatrixPerspectiveRH

D3DXMatrixPerspectiveLH

D3DXMatrixPerspectiveFovLH

D3DXMatrixPerspectiveOffCenterRH

D3DXMatrixPerspectiveOffCenterLH