This was a semester long project for the Global Illumination (CSCI-711) course at RIT. The objective was to develop a RayTracer in C++11 from scratch in order to render Whitted's famous inter-reflecting spheres.
The project was divided in 7 Checkpoints:
- Setting the Scene
- Raytracing Framework
- Basic Shading
- Procedural Shading
- Reflection
- Refraction
- Tone Reproduction
A KD-Tree was implemented as the acceleration structure of the RayTracer.
The output of each Checkpoint is Whitted's spheres and can be found in their corresponding directory inside the /checkpoints
directory.
A sneak peak of the results of checkpoints 2-7 is shown below:
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Download the following software to be able to run the project.
- Visual Studio 17
- Nuget - Download with Visual Studio Installer
Download or clone the code
git clone https://github.com/cozzarin787/Raytracer.git
- Open Visual Studio 2017
- Click on
Open Project/Solution
- Select the
RayTracer.sln
file inside the/RayTracer
directory - Right click on the solution
- Click on
Manage Nuget Packages...
- Install
Eigen
&LodePNG
The project should be ready to run at this point.
Running the program should render Whitted's spheres inside the /RayTracer/RayTracer
directory.
- Download lodepng.cpp & lodepng.h into the project directory with all the other C++ files
- Install
Eigen
brew install eigen
- Open CLion
- Select Open and choose the project directory
/RayTracer
The CMakeLists.txt
file should load the configuration. In case it doesn't just select it.
The project should be ready to run at this point.
Running the program should render Whitted's spheres inside the /RayTracer/cmake-build-debug
directory.
For the versions available, see the tags on this repository.
- Jacob Cozzarin <cozzarin787>
- Pablo Ordorica <pablordoricaw>
- Prof. Joe Geigel <jmg> - For teaching the course and all his help throughout the project