Version 1.5
Features:
- Supported shapes: spheres, meshes
- Supported materials: Lambertian (matte), phong (shiny), specular, transparent, textured
- Supported lights: Ambient, parallel, point
- Supported cameras: Perspective (supports multisampling with configurable defocus aberration), realistic (supports multisampling with configurable defocus aberration, focal depth and aperture)
- Supported input: XML file specifying camera, lights and shapes. Meshes are read from OBJ files (no MTL support)
This is a simple Whitted ray tracer doing recursion for specular and refractive materials. Total internal reflection exists according to Snell's law. The Beer-Lambert law can't currently abort recursion.
Memory management was fixed by migrating to shared pointers. Simple multithreading is achieved with OpenMP.