Raytracer

Introduction:

Le Raytracer est un projet que j’ai eu l’occasion de réaliser lors de ma première année à Epitech. Le projet consistait à faire un raytracer en C sur une durée de deux mois environ.

Le raytracing est une technique de rendu qui consiste à simuler de manière presque réaliste le comportement de la lumière. Pour faire on lance des “rayons” qui parte de la caméra (qui représente l’œil) puis dès qu’on détecte une collision avec un objet on effectue le trajet de la lumière à l’envers. C’est à dire de l’objet vers la source lumineuse (pour simplifier).

C’est un projet que j’ai complètement adoré et qui est de loin mon projet favori de toute ma scolarité. Le résultat peut être largement perfectionné mais au vu des contraintes et , à cet époque, de mon manque de connaissance sur le sujet je trouve le résultat intéressant. D’autant plus qu’il est entièrement à la norme Epitech, c’est à dire qu’il n’y a aucune fonction de plus de 25 lignes, de ligne de plus de 80 caractères etc …

Les Features:

  • Chargement d’une scène suivant un format “.ini” disposant de réglage comme la position, la rotation, la couleur, le matériau (j’y reviendrais plus tard), la bump map, la transparence, le coefficient de réfraction …
  • Le modèle de lumière utilisé est le Blinn-Phong ce qui me donne ces beau effets spéculaires et donc il utilise les matériau pour augmenter ou diminuer les couleurs (Ambiante, Diffuse, Spéculaire)
  • Le multi-light est géré ainsi que les lumières de couleurs
  • Ombres
  • Bump maps
  • Réfraction, Réflexion (comme pour imiter de l’eau par exemple)
  • Parsing de fichier .obj (Quelques problème l’affichage des triangles donc absent au rendu)

Résultat: