three different surface constructors working in the raytracer.
A ray tracing benchmark showing the cost of branch divergence.