This is a personal project in which I incrementally build a raytracer, that I started to learn modern C++ and computer graphics. Going back at it from time to time !
- Requirements : CMake, Make, a modern C++ compiler (tested with G++ >= 9), OpenMP library (for multithreading).
- Generate the Makefile by doing :
$ mkdir build $ cd build $ cmake ..
- You can then compile and run the project with :
$ make raytracer $ ./raytracer
If you want to change the rendered scene, you can do so in src/main.cpp
.
- Global illumination via path tracing
- Area lights
- PBR material (inspired by Disney's & Blender's Principled Material although much less complete) supporting diffuse, metal, refractive and emissive
- Multithreading (using OpenMP)
- Importance sampling (for diffuse BRDF and area light sampling)
- Firefly removal