Eric Bruneton
EVASION / LJK |
Recherche
J'ai rejoint l'équipe EVASION en septembre 2006 pour travailler sur le rendu en temps réel de paysages naturels dans leur ensemble. Je m'intéresse à l'animation et au rendu réaliste du terrain, de l'atmosphère, de l'océan, de la végétation, des rivières, des nuages, etc. Je recherche des algorithmes temps-réel et passant à l'échelle, permettant de naviguer librement n'importe où dans un très grand paysage (pouvant aller jusqu'à une planète entière), du sol à l'espace, sans transitions visibles. J'ai quitté l'INRIA en 2011 et je ne fait plus de recherche sur ce sujet.
Publications
Projets
Forêts
Nous présentons un nouvel algorithme pour le rendu et l'éclairage réalistes en temps-réel de forêts. Notre méthode peut afficher de très vastes forêts en temps-réel et à toutes les échelles, sans "popping" ni "aliasing". Cette méthode est basée sur deux nouvelles représentations pour les forêts, appelées "z-field" et "shader-maps", avec une transition sans couture entre elles. Notre premier modèle s'inspire des "light fields" et des champs de hauteur pour représenter les arbres les plus proches individuellement, en prenant en compte tous les effets d'illumination. Notre second modèle est basé sur un shader appliqué sur le terrain, et modulé en fonction de la position et des directions de vue et du soleil, en prenant en compte la contribution des éléments se projetant dans chaque pixel. Des comparaisons qualitative avec des photos montrent que notre méthode produit des résultats réalistes.
- Publication
- Annexes: Plus de résultats, plus de détails.
- Video 1, Video 2
Océan
Nous proposons un nouvel algorithme pour la modélisation, l'animation, l'illumination et le rendu de l'océan, en temps-réel, à toutes les échelles et pour toutes les distances de vue. Notre algorithme est basé sur une représentation hiérarchique combinant géométrie, normales et BRDF. Pour chaque distance de vue, nous calculons une version simplifiée de la géométrie, et nous encodons les détails manquants dans les normales et la BRDF, selon le niveau de détails requis. Nous utilisons ensuite cette représentation pour l'illumination et le rendu. Notre algorithme est temps-réel et produit des images et animations très réalistes.
Extension: version améliorée utilisant une méthode FFT pour synthétiser la surface.
Atmosphère
Nous proposons une méthode nouvelle et précise pour rendre l'atmosphère en temps-réel depuis tout point de vue du sol à l'espace, en prenant en compte la diffusion multiple de Rayleigh et de Mie. Notre méthode reproduit de nombreux effets de la diffusion de la lumière, comme la couleur du ciel de jour et au crépuscule, la perspective aérienne pour toute direction de vue ou du soleil, ou encore les ombres de la Terre et des montagnes (raies de lumière) dans l'atmosphère. Notre méthode est basée sur une formulation de l'équation de transport de la lumière qui est précalculable pour tout point de vue, direction de vue et direction du soleil. Nous montrons comment stocker ces données de façon compacte et nous proposons un algorithme GPU pour les précalculer en quelques secondes. Ces données précalculées nous permettent d'évaluer les transports de lumière en temps constant lors du rendu, sans aucune intégration numérique, et tout en prenant en compte le sol pour les ombres et les raies de lumière.
Publications:
- Survey "A Qualitative and Quantitative Evaluation of 8 Clear Sky Models"
- Article "Precomputed Atmospheric Scattering"
Terrain
Données de la Régie de Gestion des Données des Pays de Savoie
Nous proposons une méthode pour ajouter à un très grand terrain des détails fins tels que des routes, des rivières, des lacs ou des champs. Ces détails peuvent être édités interactivement, et le paysage peut être exploré en temps-réel à n'importe quelle altitude du sol à une vue d'avion. Nous utilisons une description vectorielle des détails linéiques et surfaciques, avec des shaders associés pour spécifier leur apparence (couleur et matériau), leur empreinte (effet sur la forme du terrain) et leurs objets associés (ponts, haies, etc.). Pour traiter à la fois de très grands terrains et des détails fins nous utilisons un arbre quaternaire subdivisé selon la position de l'observateur. Les nouveaux noeuds de l'arbre sont générés selon les besoins et mis en cache sur GPU pour les images suivantes. Pour chaque noeud nous produisons une texture de couleur, une texture d'empreinte, et des objets associés, selon les données vectorielles pour ce noeud. Un rafinement progressif, des détails vectoriels procéduraux et une pyramide de mipmap fournissent trois mécanismes de gestion du niveau de détails pour les noeuds de petite, moyenne et grande échelle. Nos résultats et la vidéo associée montrent que notre méthode est performante et donne des rendus de haute qualité visuelle.
Végétation
Données de la Régie de Gestion des Données des Pays de Savoie
Le but de ce travail est de dessiner en temps réel des terrains de la taille d'une planète couverts des plantes et d'arbres. Comme il est impossible de précalculer et de stocker la position de chaque plante (il y en a des milliards) nous les générons à la volée. Pour cela nous générons des positions candidates avec un générateur pseudo aléatoire, puis nous testons chaque position par rapport à une carte de classification de la couverture du sol, afin de rejeter les positions qui sont en dehors des zones de végétation (notre carte de couverture du sol pour la terre est assez grossière - 1 km par pixel - donc nous l'amplifions avec un bruit de Perlin pour ajouter des détails fins). Ensuite nous regroupons toutes les positions retenues à l'aide d'un algorithme de reduction de flux sur GPU, puis nous utilisons cette structure compacte pour instancier de nombreuses instances (> 100000) de modèles de plantes avec le niveau de détail approprié (en utilisant l'OpenGL instancing).
Ce travail a été réalisé par Yacine Amara, doctorant de l'Ecole Militaire Polytechnique d'Alger lors d'un stage à EVASION que j'ai encadré, en se basant sur des travaux réalisés en collaboration avec Xavier Marsault en 2007.
Rivières
Données de la Régie de Gestion des Données des Pays de Savoie
Nous proposons un algorithme pour la simulation interactive d'écoulement de fluide réalistes dans de grands mondes virtuels. Notre méthode repose sur deux contributions principales: le calcul local du champ de vitesse d'un écoulement stationnaire étant donné des conditions aux bords, et l'advection de détails fins, uniformément répartis dans l'espace écran, et se déplaçant en suivant le champ de vitesse précédent.
Ce travail a été réalisé par Qizhi Yu, ancien doctorant EVASION coencadré par Fabrice Neyret et moi-même.
Nuages
Nous proposons un algorithme pour la simulation réaliste et temps-réel de la diffusion multiple de la lumière dans un volume. Contrairement aux méthodes temps-réel précédentes nous traitons tous les types de chemins lumineux et nous préservons leur comportement anisotrope. Notre approche consiste à estimer le transport d'énérgie entre la surface éclairée du nuage et un pixel de nuage à rendre, de façon séparée pour chaque ordre de diffusion. Le rendu est réalisé par un shader sur GPU, en utilisant un maillage grossier dont la forme et la silhouette sont complétés par des détails fins sous forme d'une hypertexture. Notre méthode permet de rendre des cumulus détaillés et animés ou des ciels nuageux à environ 2 à 10 images par seconde.
Ce travail a été réalisé par Antoine Bouthors, ancien doctorant EVASION avec qui j'ai travaillé pendant sa thèse. J'ai ensuite encadré deux étudiants en Master recherche sur ce thème, Vincent Vidal et Laurent Belcour.
Proland
La plupart des travaux précédents sont intégrés au fur et à mesure dans une bibliothèque Open Source appelée Proland. Proland permet l'affichage temps-réel de terrains multi-résolutions, la gestion et l'édition temps-réel de données vectorielles (par exemple des routes ou des rivières), le rendu de l'atmosphère et des nuages, et le rendu de forêts. Toutes les données sont chargées ou générées à la volée en fonction du point de vue et peuvent être combinées de façon procédurale. Par exemple on peut modifier la forme et la texture d'un terrain en fonction de données vectorielles représentant des routes ou des rivières. Proland est basé sur un graphe de tâches et un gestionnaire de cache qui permettent de tirer parti des multi-processeurs, de charger des données à l'avance pour éviter les temps de latence dus aux accès disque, ainsi que de gérer les dépendences entre tâches (une donnée est automatiquement recalculée si une donnée dont elle dépend est modifiée).Résultats:
- images de la Haute-Savoie
- images de la Terre utilisant BMNG (Blue Marble Next Generation)
- images de la Terre utilisant BMNG et SRTM v4
- images très haute résolution de la Terre utilisant BMNG et SRTM v4
- vidéo de la Terre utilisant BMNG
- vidéo de la Terre utilisant BMNG et SRTM v4
- vidéo de la Terre utilisant BMNG et SRTM v4
Démos
- Océan: code source de notre algorithme de rendu temps-réel d'océan.
- Océan: une version améliorée utilisant une méthode FFT pour synthétiser la surface.
- Atmosphère: code source ( version initiale) de notre algorithme de rendu temps-réel d'atmosphère.
- Proland: logiciel exécutable de démonstration de Proland.
Anciens travaux
Après ma thèse effectuée à l'INRIA dans l'équipe SIRAC (devenue l'équipe SARDES), intitulée "Un support d'exécution pour l'adaptation des aspects non-fonctionnels des applications réparties" et soutenue en 2001, j'ai travaillé 5 ans à France Telecom R&D en tant qu'ingénieur de recherche, sur le thème de la programmation par composants. Ce travail a donné lieu à plusieurs publications:
- Bruneton E., Coupaye T., Leclercq M., Quéma V. and Stefani J-B. The Fractal component model and its support in Java, Software - Practice and Experience, Volume 36, p1257-1284, 2006.
- Lenglet R., Coupaye T. and Bruneton E. Composing transformations of compiled Java programs with Jabyce, Computer Science and Information Systems, Volume 1, Issue 2, p83-125, 2004.
- Bruneton E. and Riveill M. An architecture for extensible middleware platforms, Software - Practice and Experience, Volume 31, Issue 13, p1237-1261, 2001.
- Bruneton E., Coupaye T., Leclercq M., Quéma V. and Stefani J-B. An open component model and its support in Java, CBSE 2004, p7-22, 2004.
- Laumay P., Bruneton E., De Palma N. and Krakowiak S. Preserving causality in a scalable message-oriented middleware, Middleware 2001, p311-328, 2001.
- Bruneton E. and Riveill M. Experiments with JavaPod, a platform designed for the adaptation of non-functional properties, Reflection 2001, p52-72, 2001.
- Bruneton E. and Jean-François Pradat-Peyre J-F. Automatic verification of concurrent Ada programs, Ada-Europe 1999, p146-157, 1999.
- Bruneton E. Indirection free referencing for mobile components, Third European Research Seminar on Advances in Distributed Systems, 1999.
- Bruneton E., Coupaye T. and Stefani J-B. Recursive and dynamic software composition with sharing, Workshop on Component Oriented Programming, Malaga, Spain, 2002.
- Bruneton E. and Riveill M. Reflective implementation of non-functional properties with the JavaPod component platform, Workshop on Reflection and Metalevel Architectures, Nice, France, 2000.
- Bruneton E. and Riveill M. JavaPod: an adaptable and extensible component platform, Workshop on Reflective Middleware, New York, USA, 2000.
- Bruneton E., Lenglet R. and Coupaye T. ASM : un outil de manipulation de code pour la réalisation de systèmes adaptables, Journées Composants, Grenoble, 2002.
- Coupaye T., Lenglet R., Beauvois M., Bruneton E. and Déchamboux P. Composants et composition dans l'architecture de systèmes répartis, Journées Composants, Besançon, 2001.
et à deux logiciels libres distribués par le consortium ObjectWeb:
- Fractal: une plate-forme pour la programmation par composants en Java.
- ASM: une librairie de manipulation de bytecode Java.
En parallèle de mes activités professionnelles j'ai essayé de modéliser Rama, un vaisseau spatial gigantesque décrit par A.C. Clarke dans "Rendez vous avec Rama":
Ceci a conduit à un film (YouTube) accepté au festival d'animation par ordinateur de SIGGRAPH 2006. Et c'est également de là que vient mon envie de faire de la recherche sur les thèmes décrits ci dessus!