Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raytracer

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.

Features

  • 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

Requirements

  • C++17 compiler (g++)
  • SFML 2 (brew install sfml@2 on macOS)

Build & Run

make
./raytracer <config_file>

Example:

./raytracer Config/config
make re     # clean rebuild
make fclean # remove all binaries

Project Structure

Source/
├── 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

Contributors

  • Victor Braun
  • Valentin Gallerand
  • Maxence Canler

About

3D raytracer in C++ with Phong shading, multiple primitives and lights

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages