+01 - RENDU 3D
← Tous les projets

Raytracer Physiquement Réaliste

Un path tracer moderne capable de simuler la lumière avec une précision physique, des matériaux réalistes et des optimisations poussées pour des rendus haute qualité.

ANNÉE2025
RÔLEDéveloppement · Rendu 3D
TYPEProjet personnel
STACKC++17 · SFML · Intel OIDN · libconfig · OpenMP
Raytracer Physiquement Réaliste
+LE PROJET

Construire un moteur de rendu photoréaliste, de la théorie à l'implémentation optimisée.

Ce path tracer implémente le rendu physiquement réaliste (PBR) avec la BRDF Cook-Torrance, des matériaux métalliques et transparents, et des optimisations comme la BVH avec SAH et le multi-threading tile-based. Le projet inclut aussi une interface interactive pour explorer les scènes en temps réel, ainsi qu'un système de plugins pour étendre les fonctionnalités sans recompiler le cœur du moteur.

Ce que j'ai fait
  • +Implémentation de la BRDF Cook-Torrance avec GGX distribution
  • +Construction d'une BVH accélérée par Surface Area Heuristic (SAH)
  • +Path tracing Monte Carlo avec importance sampling et Russian Roulette
  • +Système de plugins dynamiques pour matériaux et chargeurs de modèles
  • +Interface interactive avec affichage progressif (SFML)
  • +Optimisations multi-threadées et tile-based rendering
  • +Intégration du denoising Intel Open Image Denoise (OIDN)
C++17SFMLIntel OIDNlibconfigOpenMP
01

De la théorie à la lumière simulée

Le cœur du projet repose sur la BRDF Cook-Torrance, qui combine distribution GGX, terme de Fresnel et géométrie Smith pour simuler des matériaux réalistes. Chaque rayon est tracé récursivement, avec importance sampling pour réduire la variance et Russian Roulette pour terminer les chemins de manière probabiliste.

De la théorie à la lumière simulée
02

Accélérer le rendu : BVH et multi-threading

Pour gérer des scènes complexes, une BVH construite avec la Surface Area Heuristic (SAH) réduit les temps d'intersection de 10 à 100 fois. Le rendu est parallélisé en tiles, avec un ordonnanceur qui équilibre la charge entre les threads pour maximiser l'utilisation du CPU.

Accélérer le rendu : BVH et multi-threading
03

Des matériaux qui imitent la réalité

Le moteur supporte une large gamme de matériaux : métaux (or, argent, cuivre), diélectriques (verre, eau, diamant), et surfaces émissives. Chaque matériau est défini par ses propriétés physiques (rugosité, indice de réfraction) et peut être texturé avec des images ou des motifs procéduraux.

Des matériaux qui imitent la réalité
Gallery image 1
Gallery image 2
Gallery image 3
Gallery image 4
Gallery image 5
Gallery image 6
Gallery image 7

Image 1 / 7

+RÉSULTAT

Un moteur de rendu capable de produire des images photoréalistes, avec des optimisations qui le rendent utilisable même sur des scènes complexes.

0-100xspeedup BVH
0+samples/pixel (denoised)
PBRmatériaux réalistes
Projet suivant

Weft

02 - RUST & LINUX