Skip to content
RimapusPublic

About

C++ raytracer for configurable scenes, lighting and reflections. [EPITECH Project]

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Raytracer

A C++ raytracer for configurable scenes, lighting and reflections.

Spheres, a torus and a tanglecube rendered by Raytracer

A still life with spheres, a torus, a tanglecube and soft reflections.

Screenshots

Primitives Materials
Every supported primitive Torus, spheres and shadows
Tanglecube Reflections
Tanglecube close-up Specular reflections
Three spheres under red and blue point lights

Three spheres under red and blue point lights.

One sample per pixel compared with adaptive antialiasing

One sample per pixel (left) and adaptive 8/16-sample antialiasing (right).

How it works

The renderer casts primary rays through a configurable camera. Scenes can contain spheres, planes, cylinders, cones, pyramids, toruses and tanglecubes, lit by point or directional lights. Shading includes ambient and diffuse light, shadows, specular highlights and floor reflections.

Scenes are libconfig files. The preview uses SFML; the final image is written as a PPM after the preview window closes.

Render a scene

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./raytracer scenes/showcase.cfg

Close the preview window to write output.ppm.

See BUILD.md for dependencies, scenes/README.md for the included scenes, and CREDITS.md for credits.

Academic notice

EPITECH students: do not copy this code. Using it as your own work is cheating and can lead to disciplinary action.

About

C++ raytracer for configurable scenes, lighting and reflections. [EPITECH Project]

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages