Sous-sections

Visualisation, rendu et simulation de l'éclairage



Participants : George Drettakis, Fabrice Neyret, Claude Puech, François Sillion, Joelle Thollot,

Pierre-François Clerc, Cyrille Damez, Frédo Durand, Xavier Granier, Jean-Marc Hasenfratz, Céline Loscos, Alexandre Meyer, Frédéric Perez, Cyril Soler, Jérémie Turbet, Bruce Walter.

Méthodes hiérarchiques pour la simulation de l'éclairage



Participants : François Sillion, George Drettakis,

Cyrille Damez, Jean-Marc Hasenfratz, Frédéric Perez, Cyril Soler, Jérémie Turbet.

Nos travaux portent sur la définition de techniques de calcul hiérarchiques, permettant de réaliser des approximations bien contrôlées et d'accélérer ainsi les simulations. Nous avons en particulier travaillé dans le cadre des projet ESPRIT ``ARCADE'' ( making radiosity usable) et ``SIMULGEN'' sur les aspects suivants :

Contrôle de la précision et du coût mémoire pour la radiosité hiérarchique



Participants : Georges Drettakis, François Sillion,

Xavier Granier, Cyril Soler, Jérémie Turbet.

Nous avons poursuivi nos expérimentations sur les critères de subdivision pour le contrôle du raffinement hiérarchique. Il s'agit de l'un des problèmes centraux pour le développement d'algorithmes robustes et utilisables sur des scènes de taille ``industrielle'', ce qui est l'objectif du projet ARCADE.

Ayant mis en évidence les demandes très différentes placées sur le raffinement hiérarchique par des applications aussi diverses que la simulation numérique et la promenade en réalité virtuelle, nous avons mis en place une architecture très flexible permettant une expérimentation rapide et contrôlée. Cette architecture est fondée sur la représentation du processus de raffinement par un graphe de décision, utilisant des outils de calcul avec des attributions bien définies [37].

Afin d'accroitre la complexité des simulations, nous nous sommes attachés à réduire la consommation en place mémoire actuelle des algorithmes de radiosité hiérarchiques avec regroupement. Nous avons alors developpé un nouvel algorithme basé sur un stokage du résultat différent, permettant de réduire et de contrôler ce coût. Le principe de la méthode est d'utiliser la structure de la hiérarchie de liens pour réduire la mémoire utilisée à la fois par les liens et les éléments de la hiérarchie. Ce travail a été présenté au congrès Graphics Interface'99 [25].


Application de la simulation d'éclairage à la croissance des plantes



Participants : François Sillion, Cyril Soler.

Dans le cadre de l'application à la simulation de la croissance des plantes, menée en collaboration avec le CIRAD dans le cadre de l'ARC SOLEIL (cf. 7.2.1), nous associons une simulation des échanges lumineux à un moteur de croissance végétale (AMAP). De telles simulations permettent de prévoir non seulement la forme, mais aussi le fonctionnement interne de l'arbre en fonction des conditions précises d'éclairement, au fil de sa croissance.

Malheureusement, la faible cohérence géométrique, caractéristique des modèles de plantes, rend délicat le contrôle du coût des algorithmes de simulation de l'équilibre lumineux. D'autre part, la rapide croissance du nombre de primitives géométriques lorsque l'arbre grandit (plus de 50,000 polygones pour l'exemple montré en Figure 2) limite très rapidement ce type de simulation. Nous nous sommes intéressés à la question de l' instanciation (c'est-à-dire l'utilisation d'un même ensemble géométrique en plusieurs points d'une scène). Cette technique est couramment utilisée pour le tracé de rayons, mais sa traduction dans des algorithmes de radiosité est a priori difficile puisque le résultat des calculs est habituellement très lié à la représentation géométrique. L'instanciation, que nous recherchons en accord avec la structure topologique de la plante fournie par le moteur de croissance, conduira rapidement à des simulations botaniques à plus grande échelle, permettant par exemple d'étudier l'influence des plantes sur leurs voisines.

Nous avons également étendu l'algorithme de radiosité pour prendre en compte de façon robuste et efficace la transparence des feuilles, un effet indispensable notamment pour la simulation infrarouge ou plus de 80% de l'énergie est ainsi transmise. Le couplage entre notre logiciel de simulation de l'éclairage et le code de simulation de croissance en développement par l'équipe du CIRAD a été effectué, ce qui permet de faire croître des plantes en réponse à leur environnement lumineux (figure 2).

Figure 2: Simulation de la croissance d'un albizia âgé de quelques années. On note une déformation due à la direction prédominante d'éclairement.
\begin{figure} \begin{center} \epsfxsize =8cm\epsfbox {FIGURES/plante.eps}\end{center}\end{figure}

Rendu haute qualité pour des environnements généraux



Participants : Georges Drettakis, François Sillion, Xavier Granier.

Dans le cadre du projet européen SIMULGEN, nous avons comparé diverses techniques de représentation de distributions directionnelles, utilisées notamment pour exprimer la répartition de la lumière quittant une surface (ou un groupe d'objets) suivant toutes les directions. Avec un choix de représentation ( une représentation hiérarchique ici) et une stratégie de raffinement appropriés, nous avons calculé une solution prenant en compte les aspects non-diffus. Cette solution permet un l'affichage interactif. De plus notre implémentation a été developpée pour être portable sur diverses plate-forme de calcul d'illumination. Ce travail a été présenté au congrès Graphics Interface'99 [34].

Rendu interactif de haute qualité



Participants : Georges Drettakis, Xavier Granier, Bruce Walter.

Nous avons développé une nouvelle méthode pour le rendu interactif par lancer de rayons. Nous supposons que le système de rendu ne peut fournir qu'un très faible nombre d'échantillons par rapport au nombre de pixels de l'image. Pour donner à l'utilisateur un rendu interactive, nous stockons un certain nombre de points dans le ``render cache'' ; ces points sont ensuite re-projetés à chaque pas de temps sur l'image. Après une étape de correction des erreurs d'occultation et un lissage, nous arrivons à rendre une image d'assez bonne qualité. En parallèle, nous calculons une image de ``priorité'', qui permet l'identification des echantillons que nous demandons au système de rendu. La figure 3 (gauche) illustre l'image générée par la projection ``brute'', (milieu) montre la correction de profondeur et (droite) le lissage.

Figure 3: (gauche) Illustre l'image générée par la projection ``brute'' des échantillons, (milieu) montre la correction de profondeur et (droite) le lissage.
\begin{figure} \begin{center} \epsfxsize =6cm\epsfbox {FIGURES/reconstruction.eps}\end{center}\end{figure}

Les résultats montrent que pour des résolutions allant de 256x256 jusqu'à 320x320 nous arrivons à atteindre 10 à 15 images par seconde avec une qualité satisfaisante, en utilisant 1 à 4 processeurs R10000 pour le rendu. En utilisant un 60 processeurs, nous arrivons à avoir un rendu fluide pour le tracer de chemin, avec les effets de caustiques etc.

Figure 4: Des images d'une session interactive en utilisant le ``render cache''. L'utilisateur reçoit une réponse immédiate à un changement de point de vue ou à un déplacement d'un objet (la tasse). Certains artefacts restent visibles, mais le système, avec un taux de rafraîchissement de 5 images par seconde permet à l'utilisateur une véritable interaction avec la scène, tout en gardant une grande qualité de rendu.
\begin{figure} \begin{center} \epsfxsize =15cm\epsfbox {FIGURES/strip.eps}% 12.2\end{center}\end{figure}

Dans la Figure 4(a) nous montrons un exemple d'une scène de complexité modérée, où nous atteignons autour de 5 images par seconde de rafraîchissement. Ce travail a été présenté au workshop Eurographics sur le rendu [38].


Visualisation interactive de données urbaines



Participants : François Sillion, Joëlle Thollot, Xavier Decoret.

La visualisation de très grands volumes de données est un problème récurrent dans de très nombreuses applications graphiques : en effet, avec l'avènement de techniques de simulation fiables et des techniques de réalité virtuelle, la croissance du volume de données à traiter est largement supérieure à l'augmentation de capacité des matériels graphiques (pourtant déjà impressionnante !). Par ailleurs, le cas particulier des données urbaines est intéressant à un double titre. Tout d'abord, les applications concernées sont nombreuses, allant des simulateurs de conduite au tourisme virtuel en passant par l'éducation, l'évaluation de projets d'aménagement urbains et les jeux. De plus, la morphologie urbaine impose des contraintes fortes sur la structuration des données, et cette structure peut à notre sens être exploitée pour obtenir des algorithmes de visualisation très performants.

Nous avons continué à développer le concept d' imposteur pour l'accélération de la visualisation de données urbaines, en recherchant l'élimination de certains artefacts visuels (tels que la disparition d'objets ou la déformation des immeubles). Pour cela, nous avons mis au point une technique de construction d'imposteurs multi-couches à partir d'images synthétiques [17] (figure 5).

Figure 5: Principe des imposteurs ``multi-couches'' : suivant la position de l'observateur, la partie lointaine des données est simplifiée en un ensemble de couches plus ou moins nombreuses.
\begin{figure} \begin{center} \epsfxsize =5cm\epsfbox {FIGURES/imposteur1.eps}\e... ...ur2.eps}\epsfxsize =5cm\epsfbox {FIGURES/imposteur3.eps}\end{center}\end{figure}

Nous travaillons d'autre part sur le problème de la visibilité et des niveaux de détail. Le but est de ne prendre en compte que les objets visibles depuis un point de vue donné. Pour cela nous developpons un pré-calcul de l'ensemble des objets potentiellement visibles depuis un volume de l'espace. D'autre part nous calculons des niveaux de détail pour les principaux objets de la scène. Une fois que l'on connait les objets potentiellement visibles depuis le point de vue, nous choisissons les niveaux de détail de ces objets en fonction de leur distance au point de vue et du temps de calcul disponible pour assurer un affichage temps-réel.

Représentations alternatives



Participants : Fabrice Neyret, Alexandre Meyer.

Nous avons démarré cette année l'étude d'un nouveau type de représentation non-polygonale adapté aux scènes complexes constituées d'un grand nombre de détails pour lesquels on dispose d'une connaissance a priori de la répartition. C'est typiquement le cas des scènes naturelles, comme les forêts, dont le calcul du rendu réaliste par les méthodes actuelles est prohibitif. Notre première étape porte sur la représentation des conifères, pour lesquels la connaissance a priori de la répartition des détails (les aiguilles) est très forte.

L'objectif est d'obtenir un rendu réaliste (donc non temps-réel) avec ombrage et antialiasing d'une forêt de conifères, comportant un grand nombre d'arbres proches ou lointains, aussi rapidement que possible.

Notre nouvelle représentation est constituée d'une hiérarchie de shaders, chaque shader (ou fonction de réflectance) réalisant l'intégration analytique des effets lumineux des détails plus fins qu'une résolution donnée. Ceci permet en une seule évaluation lors du rendu de prendre en compte les contributions des échelles inférieures au pixel sans aucun suréchantillonnage. Pour le modèle de conifère, le shader associé à la résolution la plus fine intègre la lumière réfléchie par une seule aiguille, tandis que le shader associé à la résolution la plus grossière intègre les effets de la réflection, de la transparence anisotrope et de l'ombrage d'une touffe d'aiguilles le long d'une branche (cf figure 6). L'implémentation actuelle (peu optimisée) tourne environ 8 fois plus vite que le ray-tracer Rayshade. Ce premier travail fait l'objet d'une soumission à publication.

Figure 6: Rendu de sapins à diverses distances, en utilisant une hiérarchie de shaders comme représentation géométrique.
\begin{figure} \begin{center} \epsfxsize =12cm\epsfbox{FIGURES/sapins.eps}\end{center}\end{figure}