Raytracer
Un moteur de rendu par lancer de rayons, extensible par plugins.
Développeur (projet académique Epitech, 2e année)

Un moteur de rendu 3D écrit en C++ qui produit des images par lancer de rayons, construit autour d’une architecture à plugins chargés à l’exécution, de sorte que le moteur peut être étendu sans toucher à son cœur.
Une scène multi-objets avec réflexions, ombres et éclairage coloré, rendue en PPM.
Aperçu
Le moteur lance des rayons depuis une caméra virtuelle dans la scène, trouve l’intersection la plus proche pour chaque pixel et l’ombre à partir des lumières de la scène. Tout ce qui peut varier d’une scène à l’autre est chargé sous forme de plugin :
- Primitives : sphère, plan, cylindre, cône
- Sources de lumière : ponctuelle, directionnelle, ambiante
- Matériaux et filtres de post-traitement : sépia, noir & blanc, négatif
Comme ce sont des plugins, on peut ajouter de nouvelles formes, lumières ou effets sans recompiler le cœur du moteur.
Points forts
- Cœur à plugins : primitives, lumières, matériaux et filtres chargés à l’exécution.
- Scènes en texte clair : les scènes sont décrites dans des fichiers
.cfglisibles. - Rendu multithread : les pixels sont rendus en parallèle.
- Plusieurs sorties d’affichage : un aperçu SFML en direct, une sortie fichier PPM, ou un rendu ASCII dans le terminal.
Une présentation de l’architecture et des résultats est également disponible sous forme de diaporama, intégré plus bas sur la page.
Mon rôle
Développeur sur un projet académique Epitech à deux (2ᵉ année). Conception du moteur C++, système de chargement de plugins et pipeline de rendu.
Techno
C++ pour le moteur et les plugins, SFML pour la fenêtre d’aperçu.





