Some updates. Added area lights ( note nice soft shadows ) and a physically based shading model (normalized blinn-phong) for evaluating direct lighting. As you can see in the video, the renderer uses progressive refinement so the scene can be rendered in real-time.
Added diffuse interreflections and glossy reflections using stochastic ray tracing.
Now I’ll need to filter images to reduce noise…Probably going to try this
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.