D3DXFresnelTerm function (D3DX10Math.h)
Note
The D3DX utility library is deprecated. We recommend that you use DirectXMath instead.
Calculate the Fresnel term.
Syntax
FLOAT D3DXFresnelTerm(
_In_ FLOAT CosTheta,
_In_ FLOAT RefractionIndex
);
Parameters
-
CosTheta [in]
-
Type: FLOAT
The value must be between 0 and 1.
-
RefractionIndex [in]
-
Type: FLOAT
The refraction index of a material. The value must be greater than 1.
Return value
Type: FLOAT
This function returns the Fresnel term for unpolarized light. CosTheta is the cosine of the incident angle.
Remarks
To find the Fresnel term (F):
If A is angle of incidence and B is the angle of refraction, then
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
Then, expanding using the trig identities and simplifying, you get:
F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)
Requirements
Requirement | Value |
---|---|
Header |
|
Library |
|
See also