Parallélisation de la méthode de radiosité discrète

Rita Zrour (LLAIC)

Résumé:

La méthode de radiosité est devenue très populaire pour le calcul de l'éclairage d'une scène 3D. Le calcul de radiosité demande une mémoire et un temps de calcul qui sont pratiquement importants, d'où le besoin du recours au parallélisme (division du travail sur plusieurs machines) afin de minimiser à la fois le temps de calcul et la mémoire.

Le but de cet exposé est de présenter les différents approches utilisés pour la parallélisation de la méthode de radiosité discrète proposée par Chatelier et Malgouyres ``A low complexity discrete radiosity method''. Cette méthode est basée sur la discrétisation de la scène en voxels et ensuite le calcul de la radiosité. D'une manière générale, la méthode partitionne l'espace en listes de voxels où les voisins dans les listes sont des voisins en terme de visibilité. Des listes sont crées à chaque direction car l'ordre des voxels en terme de visibilité change en changeant la direction. Une fois les listes sont crées, le calcul de la radiosité se fait en propageant la lumière dans les listes. Plusieurs itérations sont effectuées afin d'obtenir une convergence vers la bonne solution.

Plusieurs approches sont prévu pour la parallélisation; La première approche consiste à utiliser des threads pour minimiser le temps de calcul. L'utilisation des threads est efficace car la méthode de radiosité comprend deux étapes coûteux en temps de calcul, la distribution des voxels dans les listes et la propagation de la lumière dans les listes et qui peuvent être distribués sur les threads.

La deuxième approche consiste à paralléliser les directions, i.e. chaque noeud du cluster traite une partie des directions et calcul la radiosité des voxels pour ces directions. Cette parallélisation a montré un gain clairement linéaire en nombre de noeuds et un temps de calcul amélioré par rapport au calcul séquentiel. Or dans cette approche, tous les voxels sont traités et donc la mémoire n'a pas été réparti ce qui causera des problèmes pour des scènes qui sont trop grosses.

La troixième approche consiste à partager les voxels sur plusieurs machines et à chaque direction de faire transférer les voxels d'une machine à une autre; cette méthode repartit les voxels et distribue donc la mémoire. Chaque noeud calcule la radiosité pour les listes des voxels qui lui appartiennent et à chaque direction les voxels partant d'une machine à une autre sont transmis avec leurs nouvelles valeurs de radiosité.

D'autres travaux sont encore en travail par Pierre Chatelier pour étendre la méthode de radiosité du cas diffus idéal au cas spéculaire. La parallélisation des ces extensions de radiosité seront rajoutés à la parallélisation en cours dès qu'ils seront achevés.