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.
Usage
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)
Arguments
- angle_deg, angle
numeric vector Angle of incidence of the light beam, in degrees or radians. If both are supplied, radians take precedence.
- n
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.
- p_fraction
numeric in range 0 to 1. Polarization, defaults to 0.5 assuming light that is not polarized.
Value
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.
Details
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.
Examples
Rfr_from_n(0:90)
#> [1] 0.04000000 0.04000000 0.04000002 0.04000012 0.04000039 0.04000095
#> [7] 0.04000198 0.04000367 0.04000629 0.04001011 0.04001549 0.04002279
#> [13] 0.04003245 0.04004496 0.04006087 0.04008077 0.04010534 0.04013531
#> [19] 0.04017150 0.04021482 0.04026623 0.04032682 0.04039778 0.04048040
#> [25] 0.04057609 0.04068642 0.04081307 0.04095789 0.04112292 0.04131036
#> [31] 0.04152263 0.04176237 0.04203247 0.04233608 0.04267665 0.04305794
#> [37] 0.04348408 0.04395956 0.04448930 0.04507870 0.04573364 0.04646058
#> [43] 0.04726657 0.04815934 0.04914736 0.05023991 0.05144716 0.05278025
#> [49] 0.05425142 0.05587407 0.05766294 0.05963420 0.06180559 0.06419665
#> [55] 0.06682881 0.06972567 0.07291319 0.07641994 0.08027741 0.08452025
#> [61] 0.08918671 0.09431896 0.09996356 0.10617190 0.11300082 0.12051317
#> [67] 0.12877850 0.13787387 0.14788471 0.15890583 0.17104254 0.18441195
#> [73] 0.19914445 0.21538537 0.23329697 0.25306056 0.27487920 0.29898055
#> [79] 0.32562042 0.35508676 0.38770435 0.42384042 0.46391111 0.50838925
#> [85] 0.55781356 0.61279965 0.67405319 0.74238586 0.81873457 0.90418495
#> [91] 1.00000000
Rfr_from_n(0:90, p_fraction = 1)
#> [1] 4.000000e-02 3.998375e-02 3.993501e-02 3.985375e-02 3.973996e-02
#> [6] 3.959359e-02 3.941461e-02 3.920297e-02 3.895861e-02 3.868147e-02
#> [11] 3.837148e-02 3.802858e-02 3.765269e-02 3.724375e-02 3.680169e-02
#> [16] 3.632645e-02 3.581799e-02 3.527627e-02 3.470128e-02 3.409302e-02
#> [21] 3.345152e-02 3.277686e-02 3.206912e-02 3.132848e-02 3.055512e-02
#> [26] 2.974933e-02 2.891145e-02 2.804190e-02 2.714122e-02 2.621005e-02
#> [31] 2.524915e-02 2.425944e-02 2.324200e-02 2.219811e-02 2.112924e-02
#> [36] 2.003713e-02 1.892377e-02 1.779148e-02 1.664290e-02 1.548110e-02
#> [41] 1.430955e-02 1.313225e-02 1.195375e-02 1.077922e-02 9.614567e-03
#> [46] 8.466459e-03 7.342483e-03 6.251228e-03 5.202415e-03 4.207040e-03
#> [51] 3.277532e-03 2.427932e-03 1.674092e-03 1.033906e-03 5.275658e-04
#> [56] 1.778474e-04 1.044234e-05 5.432626e-05 3.421784e-04 9.108568e-04
#> [61] 1.801938e-03 3.062326e-03 4.744954e-03 6.909570e-03 9.623640e-03
#> [66] 1.296338e-02 1.701493e-02 2.187570e-02 2.765590e-02 3.448033e-02
#> [71] 4.249039e-02 5.184646e-02 6.273054e-02 7.534944e-02 8.993835e-02
#> [76] 1.067651e-01 1.261350e-01 1.483966e-01 1.739483e-01 2.032463e-01
#> [81] 2.368138e-01 2.752519e-01 3.192525e-01 3.696136e-01 4.272578e-01
#> [86] 4.932538e-01 5.688434e-01 6.554727e-01 7.548310e-01 8.688977e-01
#> [91] 1.000000e+00
Rfr_from_n(0:90, n = 1.333) # water
#> [1] 0.02037319 0.02037319 0.02037320 0.02037327 0.02037345 0.02037383
#> [7] 0.02037452 0.02037567 0.02037744 0.02038003 0.02038367 0.02038862
#> [13] 0.02039518 0.02040369 0.02041453 0.02042810 0.02044489 0.02046541
#> [19] 0.02049023 0.02052000 0.02055541 0.02059723 0.02064634 0.02070365
#> [25] 0.02077022 0.02084717 0.02093577 0.02103741 0.02115359 0.02128599
#> [31] 0.02143647 0.02160704 0.02179994 0.02201763 0.02226283 0.02253852
#> [37] 0.02284800 0.02319490 0.02358323 0.02401742 0.02450236 0.02504344
#> [43] 0.02564663 0.02631852 0.02706641 0.02789836 0.02882332 0.02985118
#> [49] 0.03099290 0.03226064 0.03366787 0.03522956 0.03696230 0.03888454
#> [55] 0.04101675 0.04338171 0.04600473 0.04891399 0.05214083 0.05572018
#> [61] 0.05969092 0.06409639 0.06898493 0.07441042 0.08043303 0.08711991
#> [67] 0.09454605 0.10279527 0.11196124 0.12214873 0.13347500 0.14607130
#> [73] 0.16008465 0.17567984 0.19304168 0.21237758 0.23392048 0.25793220
#> [79] 0.28470729 0.31457748 0.34791671 0.38514708 0.42674568 0.47325254
#> [85] 0.52527996 0.58352348 0.64877475 0.72193690 0.80404269 0.89627640
#> [91] 1.00000000