Raytracer docs 🌐 EN

Raytracer

Un moteur de rendu par lancer de rayons modulaire, écrit en C++17. Il génère des images de synthèse en projetant des rayons depuis une caméra virtuelle, en calculant leurs intersections avec des primitives géométriques et en évaluant l’éclairage direct.

C++17 Makefile SFML Plugins .so Rendu temps réel & headless

Objectif du projet

Le Raytracer transforme une description de scène (fichier JSON) en une image. Pour chaque pixel, le moteur :

  1. génère un rayon primaire depuis la caméra ;
  2. cherche l’intersection valide la plus proche parmi la géométrie de la scène ;
  3. calcule l’ombrage à partir des lumières et de la réponse du matériau ;
  4. écrit la couleur finale dans le tampon image (exporté en PNG).

Le projet se distingue par une architecture à interfaces et un système de plugins chargés à l’exécution (.so) pour le rendu et l’interface graphique, ainsi qu’une interface interactive permettant d’éditer la scène, y compris les sommets des maillages.

Utilisez la barre de recherche en haut (raccourci /) pour trouver rapidement une option, une classe ou une clé de scène. La documentation existe en français et en anglais (bouton 🌐 EN).

Aperçu des fonctionnalités

Démarrage rapide

# Compilation (produit ./raytracer et les plugins dans ./plugins)
make

# Rendu interactif d'une scène
./raytracer tests/configs/subject.json

# Rendu direct vers un PNG (sans interface)
./raytracer -r sortie.png tests/configs/subject.json

Voir Installation pour les prérequis et Utilisation pour le détail des options et du format de scène.

Organisation de la documentation

SectionContenu
InstallationPrérequis, dépendances, compilation, dépannage.
UtilisationLigne de commande, format des fichiers de scène, exemples réels.
ArchitectureOrganisation du code, modules, outils et interactions, pipeline de rendu, cluster.
FonctionnalitésPrimitives, lumières, matériaux, ombres, réflexions, BVH, maillages.
Interface graphiquePanneaux, composants, fenêtres, gizmos, édition de sommets, raccourcis.
RéférenceInterfaces, classes principales, types mathématiques.
FAQProblèmes courants et solutions.

Cette documentation est générée à partir du code réel du projet (Makefile, en-têtes, parseur de scène, exemples de tests/configs/) et de la documentation Markdown du dossier docs/.