The Ray Tracer Challenge (A Test-Driven Guide to Your First 3D Renderer)