Précédent : Modélisation géométrique et
visualisation scientifique Remonter : Résultats nouveaux
Suivant : Réalité augmentée
Participants : Laurent Alonso, Hervé Barthélémy, Xavier
Cavin, François Cuny, Nicolas Holzschuch, Slimane Merzouk,
Jean-Claude Paul, Sylvain Petitjean, Christophe Winkler.
Mots clés : simulation, génération d'images réalistes, algorithmique parallèle, réalité virtuelle. .
Nous avons utilisé tout d'abord un algorithme efficace pour construire un arbre de partitionnement binaire (BSP). Cet algorithme opère dans n'importe quelle dimension et sa construction BSP est de taille linéaire. Nous ajoutons les informations de voisinage entre les cellules de l'arbre. Puis, nous construisons les liens entre les cellules feuilles de l'arbre BSP. Ces liens sont construits en utilisant une simple traversée de l'arbre BSP.
La formulation de l'équation de radiance et le schéma itératif que nous avons utilisé pour la résoudre en utilisant le partitionnement géométrique sont les suivants :
Considérons la formulation en terme de transport d'énergie
entre trois points de la radiance incidente sur les surfaces
Ai, Aj, Ak.
Nous supposons que la fonction de radiance
L(y x) arrivant
en y du point x a été projetée dans une base de
fonctions
Nm(y
x)
de l'espace
des distributions de radiance, de façon à avoir :
En effectuant le même traitement pour la fonction de radiance
L(z y) sur la
surface Aj, on obtient alors la formulation
discrète :
où Tmn est le coefficient de transport.
Nous avons utilisé comme fonctions de base plusieurs classes d'ondelettes. Notons que pour former des fonctions de base 4D pour les besoins ci-dessus, nous utilisons la base d'ondelettes non standard construite à partir du produit tensoriel des fonctions de base unidimensionnelles. En outre, les coefficients des fonctions de base ne sont pas associés à un élément individuel, comme c'est le cas pour la radiosité, mais plutôt à une paire de surfaces. Ainsi les liens de visibilité sont entre paires d'éléments de surfaces.
L'algorithme consiste alors à diviser récursivement chaque élément là où le noyau de la radiance n'est pas suffisamment régulier, et ensuite à utiliser un schéma de résolution pour propager l'énergie et résoudre le transport discret. Nous avons implanté plusieurs types de règles de quadrature pour le calcul des coefficients de transport. Les quadratures de Gauss-Legendre ont prouvé leur efficacité pour notre calcul. Si nous utilisons les ondelettes de Haar, qui ont un support fini, les intégrales 6D de Tmn peuvent s'évaluer avec une règle produit de quadratures, car le domaine d'intégration est un hypercube 6D. Cependant les quadratures sont aussi connues pour avoir des problèmes de précision. Le nombre total de points de quadrature est N4 ou N6, suivant la situation considérée. L'étape suivante consiste à résoudre le système pour calculer la fonction de radiance. Tous les liens de visibilité de la hiérarchie sont triés dans une « queue de priorité » dépendant de leur énergie. À chaque étape, le plus énergétique des liens est choisi et transmet l'énergie aux éléments avec lesquels il interagit. Dans notre algorithme, chaque élément envoie l'énergie à un nombre constant d'éléments. Cette résolution progressive permet de prendre en compte rapidement les liens les plus importants.
Nous n'avons pas encore expérimenté complètement notre méthode, qui permet de calculer la radiance, mais nous espérons qu'elle permettra une avancée significative. Elle est d'un niveau de complexité raisonnable. En outre, elle est particulièrement adaptée à une mise en oeuvre parallèle. Les expérimentations que nous avons menées jusqu'ici sur la parallélisation de l'algorithme de radiosité, qui dans sa version hiérarchique est de nature irrégulière et dynamique, montrent en effet le rôle que peuvent jouer des stratégies comme les méthodes de décomposition de domaines, dans la mesure où elles favorisent l'exploitation de la localité des données. Nous pensons également que la méthode est susceptible de faciliter l'introduction de variations temporelles dans les simulations.
Nous avons développé une architecture permettant d'implanter les algorithmes et les structures de données nécessaires pour résoudre l'équation de radiance. Les objectifs que nous avons voulu donner à cette architecture sont :
La satisfaction de ces objectifs a orienté les principes de conception de notre architecture.
Plusieurs algorithmes sont actuellement implantés, qui concourent à la résolution de l'équation de radiance de la manière suivante :
Une configuration particulière de ces différents algorithmes permet actuellement de calculer une solution de radiosité. Cette configuration utilise les propriétés hiérarchiques des ondelettes, et plusieurs variantes de cet algorithme général sont proposées.
En outre, des solutions intégrant des fonctions physiques plus complexes (general brdf), des problématiques de contrôle de l'erreur différentes (discontinuity meshing, importance error-driven), ou des techniques de calcul par raffinement plus élaborées (clustering, ddm) peuvent être intégrées à notre architecture, en réutilisant une grande partie du code, et en conservant une bonne stabilité et de bonnes performances.