A 3D raytracer built in C++ using SFML for rendering. Renders scenes defined in configuration files with support for multiple primitives, lights, and shading models.
- Primitives: Spheres, Cylinders, Cones
- Lighting: Directional lights, Point lights, Cone lights
- Shading: Phong reflection model
- Camera: Configurable field of view and position
- Scene parser: Config-file driven scene description
- Output: Renders directly to an SFML window
- C++17 compiler (g++)
- SFML 2 (
brew install sfml@2on macOS)
make
./raytracer <config_file>Example:
./raytracer Config/configmake re # clean rebuild
make fclean # remove all binariesSource/
├── Color/ # color & Phong shading
├── Light/ # directional, point, cone lights
├── Parser/ # scene config file parser
├── Primitive/ # shapes (sphere, cylinder, cone)
├── Scene/ # camera and scene management
└── usetools/ # vectors, rays, intersections
Config/ # example scene configuration files
- Victor Braun
- Valentin Gallerand
- Maxence Canler