self.origin=origin# the point where the ray comes from
self.dir=dir# direction of the ray
self.depth=depth# ray_depth is the number of the refrections + transmissions/refractions, starting at zero for camera rays
self.n=n# ray_n is the index of refraction of the media in which the ray is travelling
# Instead of defining a index of refraction (n) for each wavelenght (computationally expensive) we aproximate defining the index of refraction
# using a vec3 for red = 630 nm, green 555 nm, blue 475 nm, the most sensitive wavelenghts of human eye.
# Index a refraction is a complex number.
# The real part is involved in how much light is reflected and model refraction direction via Snell Law.
# The imaginary part of n is involved in how much light is reflected and absorbed. For non-transparent materials like metals is usually between (0.1j,3j)
# and for transparent materials like glass is usually between (0.j , 1e-7j)
self.reflections=reflections#reflections is the number of the refrections, starting at zero for camera rays
self.transmissions=transmissions#transmissions is the number of the transmissions/refractions, starting at zero for camera rays
self.diffuse_reflections=diffuse_reflections#reflections is the number of the refrections, starting at zero for camera rays