An Epitech Project made by:
This Epitech Project has to be carried out in group of 3 to 4 students in 28 days.
Ray tracing is a technique used to generate realistic digital images by simulating the inverse path of light.
Our goal is to create a program able to generate an image from a file describing the scene.
Our Project is a path tracer (meaning it is probabilistic, using Monte Carlo algorithm) Everything is done via maths, we don't need a GUI or anything because the way it works is it prints pixel (r, g, b) into lines of a .ppm files, which if read by an image reader, will read a coordinate = a pixel of color.
The project must support the following features:
- Primitives:
- Sphere
- Plane
- Transformations:
- Translation
- Light:
- Directional light
- Ambient light
- Material:
- Flat color
- Scene configuration:
- Add primitives to scene
- Set up lighting
- Set up camera
- Interface:
- No GUI, output to a PPM file
Once the previous features are working properly, the project should handle the following features:
- Primitives:
- Cylinder
- Cone
- Transformation:
- Rotation
- Light:
- Drop shadows
Now the project could handle the following features:
- Primitives:
- Limited cylinder (0.5)
- Limited cone (0.5)
- Torus (1)
- Tanglecube (1)
- Triangles (1)
- .OBJ file (1)
- Fractals (2)
- Möbius strip (2)
- Transformations:
- Scale (0.5)
- Shear (0.5)
- Transformation matrix (2)
- Scene graph (2)
- Light:
- Multiple directional lights (0.5)
- Multiple point lights (1)
- Colored light (0.5)
- Phong reflection model (2)
- Ambient occlusion (2)
- Material:
- Transparency (0.5)
- Refraction (1)
- Reflection (0.5)
- Texturing from file (1)
- Texturing from procedural generation of chessboard (1)
- Texturing from procedural generation of Perlin noise (1)
- Normal mapping (2)
- Scene configuration:
- Import a scene in a scene (2)
- Set up antialiasing through supersampling (0.5)
- Set up antialiasing through adaptative supersampling (1)
- Optimizations:
- Space partitionning (2)
- Multithreading (1)
- Clustering (3)
- Interface:
- Display the image during and after generation (1)
- Exit during or after generation (0.5)
- Scene preview using a basic and fast renderer (2)
- Automatic reload of the scene at file change (1)
The number in parentheses is the number of points given in the grading scale for each feature.
make ./raytracer --help
USAGE: ./raytracer <SCENE_FILE> <OPTION>
SCENE_FILE: scene configuration
OPTION:
-G: Graphical
-G--low: Graphical low quality
none: No preview doxygen doxygenConfig
open html/index.html
COCHET Nattan
MONTERO FONTAINE Vincent
RAMEAUX Sonny
ROCCHIA Guillaume


