Funzione D3DXSHEvalHemisphereLight (D3dx9math.h)

Nota

La libreria di utilità D3DX (D3DX 9, D3DX 10 e D3DX 11) è deprecata e non è supportata per le app di Windows Store.

Nota

Invece di usare questa funzione, è consigliabile usare la funzione di libreria MathSfericaXMSHEvalHemisphereLight.

Valuta una luce che è un'interpolazione lineare tra due colori sulla sfera.

Sintassi

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

Parametri

Ordine [in]

Tipo: UINT

Ordine della valutazione armonica sferica (SH). Deve essere compreso nell'intervallo di D3DXSH_MINORDER per D3DXSH_MAXORDER, inclusivo. La valutazione genera coefficienti Order². Il grado della valutazione è Order - 1.

pDir [in]

Tipo: const D3DXVECTOR3*

Puntatore al vettore di direzione dell'asse dell'emisfero (x, y, z) in cui valutare le funzioni di base SH. Vedere la sezione Osservazioni.

Top [in]

Tipo: D3DXCOLOR

Colore del cielo.

Inferiore [in]

Tipo: D3DXCOLOR

Colore terra.

pROut [in]

Tipo: FLOAT*

Puntatore al vettore SH di output per il componente rosso.

pGOut [in]

Tipo: FLOAT*

Puntatore al vettore SH di output per il componente verde.

pBOut [in]

Tipo: FLOAT*

Puntatore al vettore SH di output per il componente blu.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito è D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere: D3DERR_INVALIDCALL.

Commenti

L'interpolazione viene eseguita in modo lineare tra i due punti, non sulla superficie della sfera , ovvero se l'asse era (0,0,1) è lineare in Z, non nell'angolo azimutale. La funzione di illuminazione sferica risultante è normalizzata in modo che un punto su una superficie perfettamente diffusa senza ombreggiatura e un normale puntato nella direzione pDir comporta la luminosità di uscita con un valore pari a 1 (se il colore superiore era bianco e il colore inferiore era nero). Questo è un modello molto semplice in cui Top rappresenta l'intensità del "cielo" e Bottom rappresenta l'intensità del "terreno".

Sulla sfera con raggio unitario, come illustrato nella figura seguente, la direzione può essere specificata semplicemente con theta, l'angolo sull'asse z nella direzione destra e phi, l'angolo da z.

illustrazione di una sfera con raggio unitario

Le equazioni seguenti mostrano la relazione tra cartesian (x, y, z) e coordinate sferiche (theta, phi) sulla sfera unità. L'angolo dell'angolo varia rispetto all'intervallo di 0 a 2 pi, mentre phi varia da 0 a pi.

equazioni della relazione tra coordinate cartesiane e sferiche

Requisiti

Requisito Valore
Intestazione
D3dx9math.h
Libreria
D3dx9.lib

Vedi anche

Funzioni matematiche

Trasferimento Radiance precomputto (Direct3D 9)