Whitted ray tracer

I already have a simple ray tracer running in OpenCL!

I have written a very simple application to set up a kernel ( running at full screen ) and send some data to the gpu ( scene, camera, lights ). Then the cpu waits for the gpu to do the rendering, reads back the resulting buffer into client memory and copies it to the front buffer of the window ( Note to myself: Explore OpenCL-OpenGL interoperability to avoid reading form GPU memory to client memory and back again)

The ray tracer admits adjustable levels of recursion. This is an image of a very simple scene consisting of 4  spheres and one point light.