My first fully working ray tracer running on the CPU.
- Phong lighting model (embient, diffuse, specular light).
- Shadows
- Reflection
- Refraction
- Various shapes (sphere, block, etc.)
- Texture mapping on blocks
- Moving camera
- A C++ compiler supporting C++17
- GNU Make
Build and clean commands:
# build the demo executable
make
# remove build artifacts and the executable
make clean
# clean then build
make rebuildYou can run the executable from the project root as follows.
./demoThe output will be written in a .ppm file, as defined in src/main.cpp.
| Output 1 | Output 2 |
|---|---|
![]() |
![]() |
![]() |
![]() |



