• Aucun résultat trouvé

Résultats et interprétation

5.2 Mise en évidence des points nécessitant amélioration

5.2.1 Calcul sur des scènes complexes

De même que l’algorithme de radiosité hiérarchique statique, la complexité de notre algorithme croît de façon quadratique avec le nombre de polygones composant originellement la scène (cf. para-graphe 1.2.4). L’oracle de raffinement doit en effet être appliqué à l’ensemble des paires de surfaces possibles pour initialiser l’algorithme.

Dans notre cas, cette évaluation du critère de raffinement est particulièrement lente : notre oracle requiert d’autant plus d’échantillons temporels que l’intervalle de temps correspondant à l’interaction est long (cf. paragraphe 4.2.2). Puisque ces liens sont les premiers considérés, ils ne sont pas encore subdivisés en temps. L’évaluation du critère de raffinement nécessitera donc le nombre maximum d’échantillons. Tel que nous l’avons présenté aux chapitres précédents, notre algorithme ne permet donc d’effectuer des calculs que sur une scène composée d’au plus quelques centaines de polygones. Au delà, le temps nécessaire au calcul d’une animation le rend en pratique inutilisable. De plus, la place mémoire nécessaire au stockage des nombreux liens crées devient rapidement déraisonnable.

5.2.2 Discontinuités dans l’éclairage indirect

Nous avons précédemment insisté sur l’importance de la continuité temporelle de l’éclairement pour la qualité de l’animation (cf. paragraphe 2.1.2). Il nous faut en effet prendre garde à ce que la séquence d’images produite soit exempte de variations brusques dans l’éclairage.

Rappelons que des discontinuités similaires peuvent être observées dans le domaine spatial pour l’algorithme de radiosité hiérarchique classique. Ces dernières ne sont pas uniquement dues à une précision insuffisante des calculs. Elles apparaissent notamment pour l’éclairage indirect, lorsque l’oracle de raffinement employé ne raisonne que sur l’erreur globalement commise dans l’évaluation de la radiosité sur l’élément, sans prendre en compte sa répartition1.

De plus, l’utilisation d’une base de fonctions uniformes ne permet pas une répartition homogène de cette erreur sur l’élément. Ceci entraîne, pour les échanges énergétiques de faible intensité, l’appa-rition de discontinuités aux frontières des éléments. De plus, le mécanisme de mise à jour hiérarchique fait que les discontinuités dues aux échanges répartis entre les différents niveaux s’accumulent. Ainsi,

FIG. 5.2: Exemple de discontinuités spatiales.

on peut généralement observer d’importantes discontinuités aux frontières des éléments de grande taille situés aux premiers niveaux de la hiérarchie (cf. figure 5.2).

Dans certaines conditions, notre algorithme de radiosité hiérarchique spatiale et temporelle peut entraîner l’apparition de telles discontinuités dans la dimension temporelle. Tel que nous l’avons décrit, il utilise en effet une base de fonctions uniformes. De plus, l’oracle de raffinement que nous avons présenté ne se base que sur les variations du noyau géométrique de l’équation de radiosité. La répartition de l’erreur sur le récepteur due aux variations de la radiosité sur l’émetteur n’est donc pas prise en compte.

Si l’on construit une scène où l’éclairage est majoritairement d’origine indirecte et d’intensité va-riable (par exemple en déplaçant rapidement les sources de lumière), on voit donc apparaître d’impor-tantes discontinuités temporelles aux dates correspondant aux principales subdivisions (c’est-à-dire au milieu de l’animation, ainsi qu’aux premier et second quarts). Ces discontinuités sont d’autant plus remarquées qu’elles affectent quasiment l’ensemble de la scène au même instant.

Afin de mettre en évidence l’existence de ces discontinuités, nous avons construit une scène pour laquelle notre algorithme se comporte de façon manifestement non satisfaisante. Elle est composée de quatre boîtes placées dans une pièce aux murs colorés (respectivement en rouge, vert, bleu et gris). Dans cette pièce se déplacent quatre projecteurs de lumière n’éclairant qu’une étendue limitée. Ainsi, la majorité de l’éclairement est indirect. De plus, alors que les projecteurs balayent les murs, la couleur et l’intensité de l’éclairage indirect changent radicalement. L’animation obtenue présente d’importantes discontinuités temporelles, qu’illustre la figure 5.3.

5.3 Conclusion

L’algorithme de radiosité hiérarchique spatiale et temporelle a pour objectif de calculer l’illu-mination globale pour des scènes animées, plus rapidement que si l’on procédait à une simulation image par image. Nous avons montré que, tel que nous l’avons présenté aux chapitres précédents, il permet d’accélérer de tels calculs sur des scènes géométriquement simple. Ceci démontre que le concept d’une hiérarchisation temporelle des échanges lumineux, afin d’en accélérer les calculs est conceptuellement valide.

FIG. 5.3:Exemple de discontinuité temporelle. Nous montrons la scène aux dates t

1

2 εet t

1 2% ε, ainsi que leur différence (en fausses couleurs). On peut constater que l’illumination de toute la scène a été modifiée en l’espace d’une seule image.

Toutefois, nous avons montré que des obstacles subsistent, s’opposant à son utilisation sur des scènes plus complexes :

– De même que pour l’algorithme de radiosité hiérarchique statique, il est difficile de l’employer pour des scènes composées de plusieurs milliers de polygones. De tels calculs ne sont en pra-tique envisageables que si l’on étend la hiérarchie au-dessus du niveau des surfaces, de fa-çon à réduire la complexité du problème posé. Or, la nature hiérarchique de cet algorithme le rend d’autant plus performant (par rapport à une approche non hiérarchique) que la profon-deur de la hiérarchie est grande. Il devrait donc réaliser pleinement son potentiel sur des scènes complexes. Nous montrerons au chapitre 6 comment étendre à notre algorithme le concept de regroupement des surfaces (cf. paragraphe 1.2.4), afin de lever cet obstacle.

– Pour des scènes dont l’éclairage est majoritairement d’origine indirecte et d’intensité variable, des discontinuités apparaissent dans la représentation temporelle de l’éclairage. Or nos ex-périences montrent également que c’est précisément pour l’éclairage indirect que notre algo-rithme permet de factoriser le plus efficacement les calculs. Nous détaillerons, au chapitre 7, comment l’utilisation d’une base de fonctions d’ordre supérieur permet d’obtenir une représen-tation continue de la radiosité au cours du temps.

– Le coût mémoire de notre algorithme est important en regard de la complexité limitée des scènes sur laquelle nous avons effectué nos démonstrations. Nous montrerons, au chapitre 8, qu’il est possible de mettre à profit la « localité » temporelle des échanges lumineux (deux éléments dont les intervalles de temps sont disjoints n’échangent pas de lumière) afin de per-mettre de ne charger en mémoire qu’une partie de la hiérarchie en conservant l’essentiel des performances de notre algorithme.

Mise en pratique de l’algorithme de