Reflection requires the generation of a secondary ray when a ray strikes a reflective surface (defined by its material). The ray is calculated as the reflection of the incoming ray about the normal at the intersection point. The colour obtained by the reflected ray is scaled according to the parameters of the material of the surface and added to the direct colour at the intersection point. Recursion depth is controlled by a command line parameter.

Mirrors with secondary ray recursion depth of 0.

Mirrors with secondary ray recursion depth of 1.

Mirrors with secondary ray recursion depth of 2.

Mirrors with secondary ray recursion depth of 10.

Classic CS488 reflection scene. Secondary ray recursion depth of 5.