Função D3DXFresnelTerm (D3DX10Math.h)
Observação
A biblioteca do utilitário D3DX foi preterida. Em vez disso, recomendamos que você use DirectXMath .
Calcule o termo Fresnel.
Sintaxe
FLOAT D3DXFresnelTerm(
_In_ FLOAT CosTheta,
_In_ FLOAT RefractionIndex
);
Parâmetros
-
CosTheta [in]
-
Tipo: FLOAT
O valor deve estar entre 0 e 1.
-
RefractionIndex [in]
-
Tipo: FLOAT
O índice de refração de um material. O valor deve ser maior que 1.
Valor retornado
Tipo: FLOAT
Essa função retorna o termo Fresnel para luz nãopolarizada. CosTheta é o cosseno do ângulo do incidente.
Comentários
Para localizar o termo Fresnel (F):
Se A é ângulo de incidência e B é o ângulo da refração, então
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
Em seguida, expandindo usando as identidades trig e simplificando, você obtém:
F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também