The reflectance at the planar boundary between two media, or interface, can be computed from the relative refractive index. Reflectance depends on polarization, and the process of reflection can generate polarized light through selective reflection of s and p components. A perfectly flat (i.e. polished) interface creates specular reflection, and this is the case that these functions describe. These function describe a single interface, and for example in a glass pane, a light beam will cross two air-glass interfaces.
Rfr_from_n(angle_deg, angle = angle_deg/180 * pi, n = 1.5, p_fraction = 0.5)Rfr_p_from_n(angle_deg, angle = angle_deg/180 * pi, n = 1.5)
Rfr_s_from_n(angle_deg, angle = angle_deg/180 * pi, n = 1.5)
numeric vector Angle of incidence of the light beam, in degrees or radians. If both are supplied, radians take precedence.
numeric vector, or generic_spct object Relative refractive index. The default 1.5 is suitable for crown glass or acrylic interacting with visible light. n depends on wavelength, more or less strongly depending on the material.
numeric in range 0 to 1. Polarization, defaults to 0.5 assuming light that is not polarized.
If n
is a numeric vector the returned value is a vector of
reflectances, while if n
is a generic_spct
object the
returned value is a reflector_spct
object.
These functions implement Fresnel's formulae. All parameters accept
vectors as arguments. If both n and angle are vectors with length different
from one, they should both have the same length. Reflectance depends on
polarization, the $s$ and $p$ components need to be computed separately and
added up. Rfr_from_n()
is for non-polarized light, i.e., with equal
contribution of the two components.
# NOT RUN {
Rfr_from_n(0:90)
Rfr_from_n(0:90, p_fraction = 1)
Rfr_from_n(0:90, n = 1.333) # water
# }
Run the code above in your browser using DataLab