Majeure "Mathématiques et Informatique"
Enseignement d'approfondissement
"Images: Analyse et Synthèse"

Méthode de radiosité pour le rendu d'images


Projet Réalisé par Franck Delporte (X promo 95)


Description du projet

Les différentes techniques usuelles de rendu d’images en 3D ne traitent que partiellement les problèmes d’illumination : un rendu simple se contente souvent de ne considérer qu’un certain nombre de sources lumineuses sans tenir compte du fait qu’un objet illuminé joue a son tour le rôle de source lumineuse. Même la technique de lancé de rayon (dans sa forme la plus simple au moins) ne rend compte que des ombres dues à un certains nombre de sources lumineuses, par exemple. La méthode de la radiosité tente alors d’apporter une réponse au problème de la détermination de l’illumination globale d’une scène.

Algorithmes utilisés

-Les facteurs de forme, quantifiant la visibilité des facettes entre elles, sont calculés classiquement par la méthode du hemicube: on projette le demi-espace vu par la facette courante sur un les faces d'un hemicube centré au centre de la facette. On implémente un z-buffer pour chaque face du hemicube, ou chaque pixel est affecté d'un coefficient de pondération suivant l'importance qu'il a, on somme tous les facteurs de forme élémentaires concernant chaque facette, et ce sur les 5 faces du hemicube. On obtient pour un hemicube centré sur la facette i, l'ensemble des coefficients Fij pour j décrivant toutes les facettes de l'espace.
-Pour chaque z-buffer on a recours à un fenêtrage des facettes de la scene. On utilise le fait que le fenêtrage d'un polygone par un seul plan comporte un petit nombre de cas pour appliquer successivement des fenêtrages avec les plans limitant l'espace visible par la facette au polygone obtenu. Au final on a un polygone contenu dans l'espace voulu.
-Au lieu de calculer d'abord les n*n facteurs de forme (n facettes) pour proceder ensuite à la résolution du système, on utilise un algorithme itératif qui donne des images exploitables dès les premières itérations. A chaque itération on fait rayonner une facette i de plus haute énergie en lui appliquant un hemicube. On met ainsi a jour toutes les radiosités des facettes concernées par l'émission de cette facette i. On tiens aussi le compte de l'énergie que chaque facettes a a émettre. On réitère l'opération, cela converge vers la solution attendue à quelques détails près.

Résultats obtenus

La méthode itérative donne de bons résultats en terme de convergence, si on la compare au temps qu'il faut attendre pour le calcul des n*n facteurs de forme lorsqu'on applique la méthode de résolution directe du système n*n

L'image d'illustration represente un espace limite par trois plans, illumines par une lumiere blanche et par une source de lumiere rouge. En cliquant on peut obtenir une image plus grande comme pour les exemples qui suivent.



Les exemples suivants utilisent comme scene de depart un espace limite par trois plans, une pyramide est posee au sol.
-Dans le premier cas la scene est eclairee par une lumiere blanche (le triangle blanc), la pyramide a des faces de couleur rouge, vert, bleu. On note l'amelioration du rendu des ombrages quand on passe de 100 a 400 facettes.


-Image obtenue a gauche pour une scene de 100 triangles, les z-buffer sont de résolution 256x256
-a droite la meme scene subdivisee en 400 facettes z-buffer 512x512.


-Dans ce deuxieme cas c'est la pyramide qui emmet de la lumière rouge dans la piece. Ici on voit une amelioration des degrades sur les parois verticales de la piece.

-Image obtenue a gauche pour une scene de 100 triangles, les z-buffer sont de résolution 256x256
-a droite la meme scene subdivisee en 400 facettes z-buffer 512x512.

Problèmes rencontrés et solutions apportées

Dans mon programme de subdivision des facettes d'une scenes en facettes de surface maximale fixee, j'ai oublie de supprimer les points qui se retrouvent plusieurs fois dans la scene. De sorte que l'interpolation des couleurs au sommet des triangles produisait des images au couleurs discontinues sur les aretes des triangles. Ce qui donnait des resultats de ce genre:



J'ai modifie le format de description des scenes pour y inclure la delimitation de faces ( en tant qu'ensemble de facettes ) pour garder les discontinuites sur les aretes. Dans le programme de subdivision je supprime les points qui se trouvent deja dans la liste des points pour la description d'une face.



Retour à la liste des projets réalisés