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

Weitere Informationen

Mathematische Funktionen

D3DXMatrixPerspectiveRH

D3DXMatrixPerspectiveLH

D3DXMatrixPerspectiveFovLH

D3DXMatrixPerspectiveOffCenterRH

D3DXMatrixPerspectiveOffCenterLH