Multi-threaded path-tracer written in C++.
Inspired by Peter Shirley’s mini-book series Ray Tracing in One Weekend.
- Developed with C++.
- Objects: spheres, planes and boxes.
- Materials: Lambertians, Dielectrics and Metals.
- Matrix transforms can be applied to any object.
- Area lights. Every object can be a light by having an emissive material.
- Camera positioning and aperture/focal distance (depth of field) simulation.
- Image and procedural textures.
- Normal mapping.
- Bounding volume hierarchy (AABB) for optimized scene traversal.
- Randomized super-sampling antialiasing.
- Image based-lighting through HDR light probes.
- Bloom post-processing effect to emphasize HDR rendering.
- Tone Mapping and sRGB/Gamma correction when outputing to a non-HDR format.
- Multi-threaded rendering, dividing the screen into chunks.
- Detailed render statistics feedback.