Je viens de finir l’ajout d’un algorithme de global illumination : le Voxel Cone Tracing.
Le principe est de stocker l’éclairage direct de la scène dans une texture 3D via une voxellisation de la scène.
Ensuite on génère les mipmaps de cette texture 3D, ce qui permet de simuler la propagation de cet éclairage direct.
Une fois cela fait, on « trace » des cônes dans une hémisphère orientée par rapport à la normale de chaque pixel à éclairer.
L’objectif est de couvrir l’hémisphère avec ces cônes, pour récupérer l’éclairage indirect reçu par le pixel en question.
On trace donc plusieurs cônes pour la partie diffuse de l’éclairage, ainsi qu’un unique cône plus étroit, orienté par rapport à la position de la caméra, pour récupérer la réflexion spéculaire.
Voilà le résultat :