Freigeben über


D3DXMatrixShadow-Funktion (D3dx9math.h)

Hinweis

Die D3DX-Hilfsprogrammbibliothek ist veraltet. Es wird empfohlen, stattdessen DirectXMath zu verwenden.

Erstellt eine Matrix, die die Geometrie in eine Ebene flacht.

Syntax

D3DXMATRIX* D3DXMatrixShadow(
  _Inout_       D3DXMATRIX  *pOut,
  _In_    const D3DXVECTOR4 *pLight,
  _In_    const D3DXPLANE   *pPlane
);

Parameter

pOut [ein, aus]

Typ: D3DXMATRIX*

Zeiger auf die D3DXMATRIX-Struktur , die das Ergebnis des Vorgangs ist.

pLight [in]

Typ: const D3DXVECTOR4*

Zeiger auf eine D3DXVECTOR4-Struktur , die die Position des Lichts beschreibt.

pPlane [in]

Typ: const D3DXPLANE*

Zeiger auf die Quellstruktur D3DXPLANE .

Rückgabewert

Typ: D3DXMATRIX*

Zeiger auf eine D3DXMATRIX-Struktur , die die Geometrie in eine Ebene flacht.

Bemerkungen

Die D3DXMatrixShadow-Funktion flacht die Geometrie in eine Ebene ab, als ob sie einen Schatten von einem Licht wirft.

Der Rückgabewert für diese Funktion ist derselbe Wert, der im pOut-Parameter zurückgegeben wird. Auf diese Weise kann die D3DXMatrixShadow-Funktion als Parameter für eine andere Funktion verwendet werden.

Diese Funktion verwendet die folgende Formel, um die zurückgegebene Matrix zu berechnen.

P = normalize(Plane);
L = Light;
d = -dot(P, L)

P.a * L.x + d  P.a * L.y      P.a * L.z      P.a * L.w  
P.b * L.x      P.b * L.y + d  P.b * L.z      P.b * L.w  
P.c * L.x      P.c * L.y      P.c * L.z + d  P.c * L.w  
P.d * L.x      P.d * L.y      P.d * L.z      P.d * L.w + d

Wenn die w-Komponente des Lichts 0 ist, stellt der Strahl vom Ursprung zum Licht ein richtungsgesteuertes Licht dar. Wenn es 1 ist, ist das Licht ein Punktlicht.

Anforderungen

Anforderung Wert
Header
D3dx9math.h
Bibliothek
D3dx9.lib

Siehe auch

Mathematische Funktionen