This project is the classic Ray Tracer project that many graphics students tackle at some point in their college career. We were given 6 weeks and the task of creating a full ray tracer from scratch to emulate Turner Whitted’s image shown in his seminal paper, An Improved Illumination Model for Shaded Display.
The project description gave us the option of accomplishing this using any means we wanted. We felt using SDL via C++ was the best decision because it was quite easy to draw the pixel information directly to the window surface. In addition to creating the basic scene, we also implemented an animation system as well as a few different post-processing configurations using tone reproduction. Our final addition was to include a way to “bloom” the image, giving it more of a shiny effect that you see in modern video games.
When the application first starts, you will get an image with values outside the normal color range (hence the funky looking colors). To fix this, you can press P to do a normal post-processing to normalize the colors back down to acceptable levels. That is seen in the first image after the animation on the right. Alternatively, if you press M, it will run through our bloom process which results in something like the bottom image. The bloom process takes quite a long time because of the various levels of Gaussian blur needed to create the image.
For a little more information on the steps the project went through and some more images, please check out the project blog. Start here page forward for a few posts.