D3DXSHEvalChemisphereLight-Funktion (D3dx9math.h)

Wertet ein Licht aus, das eine lineare Interpolation zwischen zwei Farben über der Kugel ist.

Syntax

HRESULT D3DXSHEvalHemisphereLight(
  _In_       UINT        Order,
  _In_ const D3DXVECTOR3 *pDir,
  _In_       D3DXCOLOR   Top,
  _In_       D3DXCOLOR   Bottom,
  _In_       FLOAT       *pROut,
  _In_       FLOAT       *pGOut,
  _In_       FLOAT       *pBOut
);

Parameter

Bestellung [ In]

Typ: UINT

Die Reihenfolge der SH-Auswertung (SphericalLips). Muss im Bereich von D3DXSH _ MINORDER bis D3DXSH _ MAXORDER (einschließlich) liegen. Die Auswertung generiert Order²-Koeffizienten. Der Grad der Auswertung ist "Order - 1".

pDir [ In]

Typ: const D3DXVECTOR3 *

Zeiger auf den Hemisphärenrichtungsvektor (x, y, z), in dem die SH-Basisfunktionen ausgewertet werden sollen. Siehe Hinweise.

Top [ In]

Typ: D3DXCOLOR

Die Sky-Farbe.

Unten [ In]

Typ: D3DXCOLOR

Die Bodenfarbe.

pROut [ In]

Typ: FLOAT*

Zeiger auf den SH-Ausgabevektor für die rote Komponente.

pGOut [ In]

Typ: FLOAT*

Zeiger auf den SH-Ausgabevektor für die grüne Komponente.

pBOut [ In]

Typ: FLOAT*

Zeiger auf den SH-Ausgabevektor für die blaue Komponente.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ausgeführt wird, lautet der Rückgabewert D3D _ OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert D3DERR _ INVALIDCALL sein.

Hinweise

Die Interpolation erfolgt linear zwischen den beiden Punkten, nicht über der Oberfläche der Kugel (d. b. wenn die Achse (0,0,1) war, ist sie linear in Z, nicht im azizimalen Winkel. Die resultierende sphärische Beleuchtungsfunktion wird normalisiert, sodass ein Punkt auf einer perfekt diffusen Oberfläche ohne Schatten und ein normaler Punkt, der in Richtung pDir gezeigt wird, zu einer Ausgangslichtung mit dem Wert 1 führen würde (wenn die obere Farbe weiß und die untere Farbe schwarz wäre). Dies ist ein sehr einfaches Modell, bei dem Top die Intensität des "Sky" und Bottom die Intensität des "Bodens" darstellt.

Auf der Kugel mit Einheitenradius kann die Richtung wie in der folgenden Abbildung dargestellt einfach mit theta, dem Winkel um die Z-Achse in rechtshändiger Richtungund phi, dem Winkel von z, angegeben werden.

Abbildung einer Kugel mit Einheitenradius

Die folgenden Gleichungen zeigen die Beziehung zwischen kartesischen Koordinaten (x, y, z) und sphärischen Koordinaten (Theta, Phi) auf der Einheitenkugel. Der Winkel theta variiert über den Bereich von 0 bis 2 Pi, während phi von 0 bis pi variiert.

Gleichungen der Beziehung zwischen kartesischen und sphärischen Koordinaten

Anforderungen

Anforderung Wert
Header
D3dx9math.h
Bibliothek
D3dx9.lib

Siehe auch

Mathematische Funktionen

Vorausberechnen der Übertragungsstärke (Direct3D 9)