CPU Path Tracer (C++)
Note: The code is open source now !
Some advanced graphics programming.
Path Tracing is the movie industries standard process for rendering photorealistic images. I've spent the past few weeks writing my own little Path Tracer, and the results are quite astonishing as you can see ! However, rendering high quality images can consume alot of time. The more samples per pixel (spp) are used, the higher the quality and the longer the rendering time. Low spp numbers can lead to visual variance (also called noise) as you can see in the attached captures. All images below have been renderer with a resolution of 800x800 pixels using 4 Threads.
Note: The render time can be speed up significantly by optimizing the algorithm (e.g. by implementing Next Event Estimation) or by porting the implementation to the GPU.

Mario Infantino
Freelancer - Programmer