Handles Thin film internal reflections
When using a glass defined as a thin film (modeled with only plane with a specified thickness), we only apply a simple refraction (in and out refraction), thus ommiting internal reflections (either caused by TIR or simple reflection when the glass is not totally transmissive). The impact of these internal reflections can be described as geometrical serie of reason:
- T x R (the transmittance T and reflection R (Fresnel) coefficients) in case we allow the transmitted ray to emerges on the same side as it entered. T x R must be applied for each traversal of the thin glass.
- (TR)² if considering the ray always emerges on the other side than the one it entered the glass. (TR)² must be applied for each back and forth traversal.
There would be two ways to correctly handle both of these scenarii:
- As the geometrical serie converges, we can use its limits as the effective transmission rate. In this case, we would not simulate any "physical" lateral shift, despite accounting for it in the transmission rate. That is to say, the ray will always emerge at the same point for a given incoming direction.
- We can sample the number of internal reflections occuring, and thus shift the emerging point accordingly. The transmission rate is also straightforward as it still is a geometrical serie.
Note that these two approach can also be applied to a reflection occuring at the entry point. Currently at this point, we either apply a reflection (using only the R fresnel coefficient) or a simple refraction (T coefficient). We could also account for a "reflection" being the results of internal reflections followed by a refraction on the entry point side.
In my opinion, sampling the number of internal events to allow for a physical shift and an exact transmission/reflection rate may be more accurate for the propagation of the ray. However it is obviously more computationally heavy than always using the limit of the serie without shift. We can also implement both solutions and use either one on demand ?
EDIT: corrected "fresnel transmission T" by "transmittance T", the latter was I thought about when writing this. The serie reason is the fresnel refecletion coefficient R time the amount of absorption along a traversal (aka, transmittance T here equivalent to beer-lambert).