D3DXSHEvalConeLight-Funktion (D3DX10.h)

Wertet ein Licht aus, das ein Kegel konstanter Intensität ist, und gibt SH-Daten zurück.

Syntax

HRESULT D3DXSHEvalConeLight(
  _In_       UINT        Order,
  _In_ const D3DXVECTOR3 *pDir,
  _In_       FLOAT       Radius,
  _In_       FLOAT       RIntensity,
  _In_       FLOAT       GIntensity,
  _In_       FLOAT       BIntensity,
  _In_       FLOAT       *pROut,
  _In_       FLOAT       *pGOut,
  _In_       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 Hemisphärenrichtungsvektor (x, y, z), in dem die SH-Basisfunktionen ausgewertet werden sollen. Siehe Hinweise.

Radius [ In]

Typ: FLOAT

Kegelradius im Bogenmaß.

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 [ 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

Wertet ein Licht aus, bei dem es sich um einen Kegel konstanter Intensität handelt, und gibt rekonsistente SH-Daten zurück. Der Ausgabevektor wird so berechnet, dass bei einem Intensitätsverhältnis von R/G/B gleich 1 die Ausgangsstärke eines Punkts direkt unter dem Licht (in Kegelrichtung an einem diffusen Objekt mit einem Albedo von 1 ausgerichtet) 1,0 wäre. Dadurch werden drei Testbeispiele berechnet: pROut wird zurückgegeben, während pGOut und pBOut zurückgegeben werden können.

Auf der Kugel mit Einheitenradius kann die Richtung wie in der folgenden Abbildung dargestellt 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 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
D3DX10.h
Bibliothek
D3DX10.lib

Weitere Informationen

Mathematische Funktionen