The Ray Tracer Challenge: p. 28