Condividi tramite


Funzione D3DXFresnelTerm (D3dx9math.h)

Calcolare il termine Fresnel.

Sintassi

FLOAT D3DXFresnelTerm(
  _In_ FLOAT CosTheta,
  _In_ FLOAT RefractionIndex
);

Parametri

CosTheta [in]

Tipo: FLOAT

Il valore deve essere compreso tra 0 e 1.

RefractionIndex [in]

Tipo: FLOAT

Indice di refrazione di un materiale. Il valore deve essere maggiore di 1.

Valore restituito

Tipo: FLOAT

Questa funzione restituisce il termine Fresnel per la luce nonpolarizzata. CosTheta è il cosine dell'angolo dell'incidente.

Commenti

Per trovare il termine Fresnel (F):

Se A è angolo di incidenza e B è l'angolo di rifrazione,

F = 0.5 * [tan2(A - B) / tan2(A + B) + sin2(A - B) / sin2(A + B)]
  = 0.5 * sin2(A - B) / sin2(A + B) * [cos2(A + B) / cos2(A - B) + 1]
    
Let r   = sina(A) / sin(B)      (the relative refractive index)
Let c   = cos(A)
Let g   = (r2 + c2 - 1)1/2

Quindi, espandendo usando le identità trig e semplificando, si ottiene:

F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)

Requisiti

Requisito Valore
Intestazione
D3dx9math.h
Libreria
D3dx9.lib

Vedi anche

Funzioni matematiche