Accueil » Rédactions » Interview : Cyril Crassin

Interview : Cyril Crassin

 

Cyril Crassin

 

En juin dernier, nous évoquions une méthode innovante de rendu d’illumination globale et ambient occlusion temps réel, développée par un groupe de chercheurs dont fait partie Cyril Crassin, alors en thèse à l’INRIA.
Nous avons voulu en savoir plus sur cette méthode, et nous vous proposons donc aujourd’hui une interview en sa compagnie.

 

L’occasion d’aborder cette technique, donc, mais aussi ses limites et développements futurs.

Nous revenons aussi avec Cyril sur son parcours, l’équipe dans laquelle il travaillait ou encore la recherche 3D en France.

Ci-dessous, vidéos montrant les résultat du projet de recherche, pour l’illumination indirecte puis l’Ambient Occlusion.


3DVF : Bonjour Cyril, et merci d’avoir accepté de te prêter à cette interview. Pour commencer, quel est ton parcours ?

Bonjour ; en juillet dernier, j’ai soutenu ma thèse de doctorat de l’université de Grenoble et je poursuis maintenant des recherches postdoctorales dans le groupe recherche de NVIDIA (basé à Santa Clara, dans la baie de San Francisco).
Avant la thèse, je n’ai pas eu un parcours tout à fait traditionnel. Après le BAC, j’ai commencé par un DUT en informatique après lequel j’ai pu intégrer une école d’ingénieur puis un Master 2 recherche « Image Vision et Robotique » à l’INPG de Grenoble, ce qui fut mon tremplin pour la thèse à l’INRIA et m’a permis d’obtenir une allocation de recherche MENRT (ministère de la recherche). J’ai donc commencé mes études par une formation plutôt technique qui correspondait beaucoup plus à mes attentes de l’époque et à mon mode de fonctionnement. Je connais plusieurs autres doctorants de l’INRIA qui ne sont pas passés par la prépa classique, et qui ont suivi un parcours similaire. Je trouve ça très bien que le système d’enseignement supérieur français permette ce genre de chose.

 


3DVF : Tu travailles au sein de l’équipe ARTIS, à Grenoble. Peux-tu nous présenter cette équipe et ses objectifs ?

J’ai en effet effectué ma thèse dans l’équipe ARTIS (devenue MAVERICK à  partir de cette année) de l’INRIA Grenoble. IL s’agit de l’une des deux équipes de recherche en informatique graphique (avec EVASION) du centre de recherche. C’est ce que l’on appelle une équipe-projet INRIA qui est membre du laboratoire Jean Kuntzmann (LJK) et regroupe des chercheurs qui dépendent de l’université de Grenoble, du CNRS, de l’INPG et de l’INRIA.
L’objectif principal de l’équipe est de mener des recherches dans le domaine de la création d’images de synthèse et d’en publier les résultats dans des journaux et des conférences internationales. Ses thèmes de recherche tournent principalement autour du rendu réaliste et non-photoréaliste (NPR), la création de nouveaux modèles et représentations et l’adaptation de ces modèles et traitements à des contraintes ou des contextes applicatifs variés.

 

Illumination indirecte

 

3DVF : Sur quelles thématiques et problématiques l’équipe travaille-t-elle actuellement ?

Je ne suis pas le mieux placé pour en parler, mais actuellement les thématiques de l’équipe tournent principalement autour des modèles de matériaux et de leur filtrage, la visualisation scientifique, l’illumination globale, la représentation et le rendu de phénomènes naturels, la perception et la stylisation non photoréaliste. Les publications récentes peuvent être consultées sur le site de l’équipe.

3DVF : Revenons maintenant sur ton travail de recherche sur l’illumination indirecte, qui a fait l’objet de plusieurs publications au cours de l’année 2011 et d’une présentation au SIGGRAPH. Peux-tu nous expliquer quelle approche vous avez choisie, et l’algorithme global ?

Au contraire de la majorité des travaux précédents, nous avons fait le choix d’effectuer ce calcul d’illumination indirect non pas sur le maillage triangulaire de la scène, mais sur une représentation voxel (volumique) de celle-ci. Une telle représentation permet un « préfiltrage » de la géométrie qui facilite et accélère le calcul de transport radiatif dans la scène.

 

Ce travail se situe dans la continuité de mes précédents travaux de thèse tournant autour de l’utilisation d’une représentation volumique pour le rendu haute qualité de vastes scènes extrêmement détaillées (le projet GigaVoxels).
L’idée générale consiste à voxeliser l’ensemble des objets de la scène et de les « filtrer » à de multiples résolutions dans un « octree » de voxels, une structure de donnes hiérarchique et creuse qui compacte les espaces vides et permet une traversée rapide. Cette représentation permet alors d’estimer très rapidement la visibilité de toute région de la scène à partir de n’importe quel point grâce à un nouveau modèle de « lancer de cône » volumique que nous avons développé.
Ce lancer de cône est utilisé pour évaluer la visibilité, à partir des éléments de surface visibles du point de vue courant (les fragments issus de la rastérisation du maillage triangulaire), de l’irradiance indirecte réfléchie par les autres éléments de la scène. Cette irradiance indirecte est calculée à partir de l’irradiance directe que l’on injecte (et que l’on filtre) dans l’octree de voxels par rasterization à partir des sources de lumière de la scène.
Tout cela se fait bien entendu entièrement sur le GPU en utilisant le pipeline graphique (c’est implémenté en OpenGL). Une présentation détaillée de l’approche ainsi que la publication PG2011 peuvent être téléchargées sur le site de l’équipe.

Ci-dessous, le principe du rendu en cone tracing, avec le système d’octree. La subdivision de l’espace est non uniforme : on ne subdivise le maillage que lorsque qu’une portion contient un objet.
En bas à droite, le schéma du système implémenté sur GPU.

 

Schéma

 

Schéma

 

3DVF : Une division de l’espace en voxels, c’est pratique, mais quid d’un univers de jeu non statique ? Comment se passe la mise à jour lorsque, par exemple, des objets bougent ? Est-ce que cela ne risque pas de consommer trop de temps de calcul sur des scènes très dynamiques ?

Une grosse partie du travail sur cette approche a été de rendre rapides la voxelization et la mise à jour de la structure de données. J’ai pour cela développé un algorithme très performant de voxelisation hiérarchique à l’intérieur d’un octree, qui tire parti du pipeline graphique de rasterization. Cet algorithme sera d’ailleurs publié l’année prochaine dans le livre OpenGL Insights. De plus, lorsqu’on observe un environnement réel de jeu vidéo, une grande partie du décor est en fait majoritairement statique ou simplement localement modifiable.
Cela reste une étape couteuse, comme tu le soulignes lorsque de nombreux éléments de la scène sont dynamiques et doivent être revoxelisés à chaque frame, même si ce cout semble raisonnable dans de nombreux scénarios.

 

Mais c’est aussi pour ce genre de raison que les algorithmes développés en recherche ne sont généralement pas utilisables immédiatement en production, mais que cela demande souvent quelques années avant que les GPUs soient assez rapides et que ce genre de cout ne devienne totalement acceptable dans un contexte de jeu vidéo.

3DVF : Qui dit voxels dit informations à stocker en mémoire… Le système est-il optimisé sur ce plan ?

La structure de donnes à base d’octree est déjà un premier moyen de grandement compacter les données. Ensuite pour les très larges scènes, un mécanisme de paging et de streaming dynamique des donnes en mémoire vidéo devient indispensable. C’est ce pour quoi le système GigaVoxels a été développé, et l’étape suivante est maintenant de coupler les deux projets afin de profiter d’un tel système pour l’illumination indirecte.


Ci-dessous : application du système pour le calcul de l’ambient occlusion.

AO

 

3DVF : Les méthodes actuelles de gestion de l’illumination globale ou de l’AO temps réelles sont loin d’être parfaites, avec notamment des artefacts visuels parfois flagrants (notamment avec le SSAO, méthode largement utilisée dans les jeux next gen actuels), ou un cruel manque de réalisme.
Comment se positionne cette méthode par rapport à la « concurrence » ? En particulier, en quoi le fait de ne pas travailler uniquement avec les informations en screen space peut-il améliorer le rendu de façon significative ?

Le fait de travailler réellement avec l’ensemble des informations de la scène plutôt que d’utiliser des donnes en espace écran permet de ne pas rater d’informations non visibles du point de vue courant, mais qui pourtant contribuent à l’éclairage indirect. C’est principalement à cause de ce phénomène que les méthodes screen-space présentent des problèmes de qualité ainsi que du « popping » et des discontinuités temporelles dont ne souffre pas notre approche.

 

3DVF : Même question sur le plan des performances… Cette technique serait-elle utilisable dans un moteur actuel ? Dans quelle mesure les performances dépendent-elles de la scène ?

Comme décrit précédemment, les performances de l’approche dépendent grandement du nombre et de la taille des objets dynamiques de la scène, plus ils sont nombreux et volumineux et plus leur voxelization sera longue.

 

Chargement....

A Lire également