This is a simple ray tracer based on Peter Shirley's RayTracing in One Weekend series and the book PBRT.
Features currently implemented
- Analytical Sphere, Rectangle and Triangle Geometry
- Mesh loading using assimp
- Simple BVH
- Gradient and Black Sky
- Lambertial, Metal, Dielectric and Emission materials
- Random and Stratified sampling
- Importance sampling materials
- Solid, Checker and Image Textures
- Multithreaded Rendering
- Integrated Intel's OpenImageDenoise
The builds have been tested on Windows with MSVC 14.2 and on Ubuntu 18.04LTS GNU C++ Compiler.
To build install CMake create a build directory in the root directory of the project. From the build directory execute the following command in cmd:
cmake -DCMAKE_BUILD_TYPE=Release ..You should now get a file RayTracer.soln in the build directory. Open the file and build.
To test the project, from the root directory of the project run:
Release/RayTracer.exeor
Release/viewer.exeYou can use CMake to build on Linux.
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
makeTo run (from root directory of project):
./Release/RayTraceror
./Release/viewer- assimp for model loading.
- Intel's OpenImageDenoise for image denoising.
- OpenImageDenoise needs TBB as a dependency.
- PCG Random Number Generator by Wenzel Jakob.
- JSON for Modern C++ by Niels Lohmann for scene file format.
- GLFW and GLAD for OpenGL.
- Dear ImGui for Immediate Mode GUI to view the rendered image.



