A CPU ray tracing library, written in C++, with a matrix representation of entities.
There are two technical parts:
- Ray tracing with shadows, ambient, diffuse (Lambert), specular (Phong), reflections, refractions (Snell-Descartes) with Schlick-Fresnel approximation and simple ambient occlusion implementation.
- C++ with super-sampling, gamma correction and multithreading image calculation.
git clone --recursive git@github.com:florianvazelle/raytracing.git
./setup.sh
Use the following command to build and run the executable target.
cmake -Bbuild
cmake --build build
./build/bin/compute --help # or ./build/bin/raytracer
Use the following commands from the project's root directory to run the test suite.
cmake -Bbuild -DRTX_WITH_APP=OFF
cmake --build build
./build/bin/rtx_test
. ├── app # Raytracer implementation │ ├── common │ ├── compute # Command-line tool │ └── raytracer # User interface app ├── assets │ ├── samples │ └── scenes ├── build # Compiled files ├── external # Submodules │ ├── cxxopts # for cli options │ ├── googletest # for unit tests │ ├── jsoncpp # for scene parser │ ├── nanogui # for user interface │ └── stb # for write PNG/JPG images ├── include │ ├── parser │ └── rtx # Raytracing library ├── source # Source files │ └── parser ├── test # Automated tests └── README.md
- Real-time image rendering
- Texture with normal/bump mapping
- Depth of field
- CUDA version
- 3D models support
- C++11 compiler
- gcc 5.0+
- clang 5.0+
- CMake for build system creation (>= 3.0)