Memo on Fresnel equations

Version : 1.3 – Living blog – First version was 29 April 2013

This post is a memo for me about misc thing I found related to the Fresnel equation as there is plenty of formula into the wild. I spend some times to gather these information and I was thinking it can interest others. This will not be really relevant to game rendering but still good to know. This could be useful when doing reference or when dealing with total internal reflection (frequent with multi layered BRDF). This is a memo, not a tutorial, so I won’t give basic explanation of many concepts like reflection/refraction, Snell’s law, index of refraction (IOR), total internal reflection (TIR), etc… At the end of the post I provide a Mathematica file with all the equations and graphs.

Notation for this post:

Conductor mean Metal and dielectric mean no-Metal material.

Light moves from a medium of a given IOR n_i (incoming) into a second medium with IOR n_t (transmitted).

Conductor have complex IOR with an imaginary part k_t (note that’s t “transmitted” is a bad choice for conductor but I found it more identifiable than n_1 and n_2, k_2).

Fresnel Equation basis

All equations using an index of refraction n_t can be replace with the same equation using a complex index of refraction n_t -\mathbf{i} k_t.

Snell’s law dielectric-conductor interface : \frac{\sin\theta_i}{\sin\theta_t}=\frac{n_t -\mathbf{i} k_t}{n_i}

Snell’s law dielectric-dielectric interface : \frac{\sin\theta_i}{\sin\theta_t}=\frac{n_t}{n_i}

The calculations of the reflectance R (What we are looking for when we want to calculate the percentage of reflection and transmission) depend on p- and s-polarization of the incident ray. Rs and Rp are the reflectivity for the two planes of polarization. Rs is perpendicular (s = German senkrecht) and Rp is parallel. The reflectance R for unpolarized light is the average of Rs and Rp:

R=\frac{(R_s+R_p)}{2}=\frac{(r_\perp^2+r_\parallel^2)}{2}

Following expressions use R_s and R_t or r_\perp and r_\parallel depend on cases to simplify notation.
Read more of this post