D3DXSHEvalDirectionalLight-Funktion (D3dx9math.h)

Wertet ein richtungsförmiges Licht aus und gibt SH-Daten (Pherical Imaging) zurück.

Syntax

HRESULT D3DXSHEvalDirectionalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pDir,
  _In_        FLOAT       RIntensity,
  _In_        FLOAT       GIntensity,
  _In_        FLOAT       BIntensity,
  _Out_       FLOAT       *pROut,
  _Out_       FLOAT       *pGOut,
  _Out_       FLOAT       *pBOut
);

Parameter

Bestellung [ In]

Typ: UINT

Reihenfolge der SH-Auswertung. 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 Hemi-Achsenrichtungsrichtungsvektor (x, y, z), in dem die SH-Basisfunktionen ausgewertet werden. Siehe Hinweise.

RIntensity [ In]

Typ: FLOAT

Die rote Intensität des Lichts.

GIntensity [ In]

Typ: FLOAT

Die grüne Intensität des Lichts.

BIntensity [ In]

Typ: FLOAT

Die blaue Intensität des Lichts.

pROut [ out]

Typ: FLOAT*

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

pGOut [ out]

Typ: FLOAT*

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

pBOut [ out]

Typ: FLOAT*

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

Rückgabewert

Typ: HRESULT

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

Hinweise

Der Ausgabevektor wird so berechnet, dass bei einem Intensitätsverhältnis von R/G/B gleich 1 die resultierende Beendigungsausdance eines Punkts direkt unter dem Licht eines diffusen Objekts mit einem Albedo von 1 1,0 wäre. Dadurch werden drei Beispielbeispiele berechnet. pROut wird zurückgegeben, während pGOut und pBOut zurückgegeben werden können.

Auf der Kugel mit Einheitenradius, wie in der folgenden Abbildung dargestellt, kann die Richtung einfach mit theta, dem Winkel um die Z-Achse in der rechtshändigen Richtung und 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 pherischen Koordinaten (Theta, phi) auf der Einheitenkugel. Der Winkel theta variiert im Bereich von 0 bis 2 Pi, während phi von 0 bis pi variiert.

Gleichungen der Beziehung zwischen kartesischen und pherischen Koordinaten

Anforderungen

Anforderung Wert
Header
D3dx9math.h
Bibliothek
D3dx9.lib

Siehe auch

Mathematische Funktionen

Vorausberechnungsübertragung der Radiance (Direct3D 9)