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.

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.

Anforderungen
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|