2017-07-26
The mathematics behind specular reflection in path tracing (or ray tracing) is simple.
When a ray encounters a reflective surface, the ray has to be recast following the rule “the angle of incidence is equal to the angle of reflection”.
Where d_r
is the (unit) reflection ray direction, d_i
is the (unit) incident
ray direction, and n
is the unit normal:
d_r = d_i - 2 * n . d_i
I recently added specular reflections to my path tracer, Grayt. The following scene exhibits reflection, and contains 3 reflective mirrors (back and side walls), and 3 reflective spheres):