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.exe
or
Release/viewer.exe
You can use CMake to build on Linux.
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
To run (from root directory of project):
./Release/RayTracer
or
./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.