Friday, July 27, 2012

Mastering C++ - Global Illumination

While I was programming on my ray tracer, I got a little stuck in a bush of errors and a bad class design (that's what you get when you start programming without thinking about a proper design :P). Therefore I restarted with the help of the book Physically Based Rendering - From Theory to Implementation.

This is an excellent book on graphics theory with lots of code snippets. After rewriting my previous raytracer, I also added global illumination and a specular surface. The result is shown below.
Cornell box with 100 samples per pixel for the direct illumination and 1000 samples per pixel for the indirect illumination
The program is also multithreaded by using the pthreads library. I feel now that I've got C++ pretty good in the fingers.

The next step as a preperation for my thesis, is reading the previous work by Björn Engelen. In his master's thesis, he explains the probabilistic visibility approach to rendering and proves that the images will ultimately converge to the correct solution. Furthermore, I will continue to read in the PBR book to familiarize myself with the PBRT raytracer that comes with the book.

No comments:

Post a Comment