Présentation du sujet
Ce projet a été proposé et encadré par M. François Desrichard actuellement (année 2020) doctorant à l’IRIT (Institut de Recherche en Informatique de Toulouse).
L’éclairage indirect d’une scène 3D en temps réel reste un défit majeur, notamment pour les industries du jeu vidéo ou la qualité du rendu reste primordiale pour rivaliser avec de nombreux concurrents.
Le but de ce projet est d’implémenter l’article sur les RSM (Reflective Shadow Maps) permettant un éclairage indirecte de la scène 3D ainsi que l’implémentation des gaussiennes sphériques citées dans l’article de Square Enix permettant l’élimination d’artefact indésireux (splotch) sur l’image lors du calcul d’un éclairage global.
Le produit final devra permettre un rendu physiquement réaliste d’une scène en temps réel.
Travail réalisé
Moteur de rendu
Nous sommes parti sur une nouvelle base Engine proposant l’import de scène maillée ainsi que la gestion des primitives d’éclairages.
- Rendu temps réel
- Chargement de scène au format .obj et .json
- Calcul de l’éclairage direct avec Cook-Torrance
- Calcul de l’éclairage indirect avec les RSMs
- Élimination des artefacts visuels (splotch) avec les gaussiennes sphériques (non réalisé ici, amélioration possible)
Démo jouable
Nous proposons une démo simple montrant l’efficacité des RSMs proposant un meilleur rendu avec ou sans.
Code source
Le gestionnaire de source et de version Git a été utilisé sur un dépôt github.
Résultats
Éclairage direct
L’éclairage direct est calculé sur la scène de Sponza (Crytek) avec la méthode de Cook-Torrance.
Éclairage indirect
Résultat d’un éclairage global avec environ 650 VPLs (Virtual Point Lights) par fragment.
Livrables
Rapports
Supports de soutenances
Autres livrables
- Manuel d’utilisation
- Code source (lien github)