GI580

Project: Global Illumination 580
Finished: Fall 2008
Context: Final Project for graduate level Computer Graphics course at USC
Team: I led a team of 5

Tech/API/SDK: C++, PThreads
Scope: Created from scratch, very literally
Assets: Textures are procedurally generated, Teapot is free




We basically created a pretty sophisticated RayTracer completely from scratch using nothing but C++ and PThreads. It supports several primitives, model loading, several light types including area lights, soft shadows, procedural Perlin Noise textures, transparency and anti-aliasing as well as all of the required optimizations to render images in a reasonable time such as threading, AABB collision detections, Octrees and so on. We also implemented Global Illumination using Photon Mapping techniques.
I did most of the RayTracer work aside from the Global Illumination part.