Skip to content

Shuvlyy/raytracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OOP-400: Raytracer

An Epitech project

Project

Ray tracing is a technique used to generate realistic digital images by simulating the inverse path of light. Your goal is to create a program able to generate an image from a file describing the scene.

📩 Installation

  1. Clone the project
git clone [email protected]:EpitechPromo2028/B-OOP-400-REN-4-1-raytracer-pierre.montaret.git raytracer
cd raytracer/
  1. Build the project
make -s
  1. Launch the project using ./raytracer If you need any help, --help flag is for you!

Features

Here is the marking scheme of the project:

  • Primitives
    • Sphere
    • Plane
    • Cylinder
    • Cone
    • Limited cylinder (0.5)
    • Limited cone (0.5)
    • Torus (1)
    • Tanglecube (1)
    • Triangle (1)
    • .obj file (1)
    • Fractal (2)
    • Möbius strip (2)
  • Transformations
    • Translation
    • Rotation
    • Scale (0.5)
    • Shear (0.5)
    • Transformation matrix (2)
    • Scene graph (2)
  • Lights
    • Directional light
    • Ambient light
    • Drop shadows
    • Multiple directional lights (0.5)
    • Multiple point lights (1)
    • Colored light (0.5)
    • Phong reflection model (2)
    • Ambient occlusion (2)
  • Materials
    • Flat color (lambertian)
    • 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
    • Add primitives to scene
    • Set up lighting
    • Set up camera
    • Import a scene in a scene (2)
    • Set up antialiasing through supersampling (0.5)
    • Set up antialiasing through adaptative supersampling (1)
  • Interface
    • No GUI, output to a PPM file
    • 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)
  • Optimizations
    • Space partitionning (2)
    • Multithreading (1)
    • Clustering (3)

👷🏻 Team

Lysandre BOURSETTE
Pierre MARGUERIE
Pierre MONTARET
[email protected] [email protected] [email protected]

wakatime + wakatime

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •