NEWS         TESTS         INTERVIEWS         DOSSIERS         GALLERY 3D         3D SITES
 Q&A ARTIS - INRIA Rhône-Alpes, Gigavoxels
Cyril Crassin
Dec. 2009
 

 

“GigaVoxels est nouvelle technique permettant le stockage et le rendu efficace sur GPU de très grosses masses de voxels. Les GigaVoxels sont en fait formés de trois composants entièrement GPUs: une structure de stockage hiérarchique à base d'octree, un algorithme de rendu direct par ray-tracing volumique et un mécanisme de cache. ”

< GigaVoxel

   
Q1 Nous connaissons les Voxels - qui sont à la 3D ce que les pixels sont à la 2D - , mais à quoi correspond les "GigaVoxels" ?
A1

En fait, il ne faut pas situer les deux choses au même niveau. GigaVoxels n'est pas une nouvelle primitive de base comme les voxels et les pixels. Il s'agit d'une nouvelle technique permettant le stockage et le rendu efficace sur GPU de très grosses masses de voxels. Les GigaVoxels sont en fait formés de trois composants entièrement GPUs: une structure de stockage hiérarchique à base d'octree, un algorithme de rendu direct par ray-tracing volumique et un mécanisme de cache.

   
Q2 Les Voxels sont aujourd'hui réservés à des applications très spécifiques (essentiellement médicales). Pensez-vous que cela puisse changer dans la prochaine décennie ?
A2 Je suis persuadé que cela va changer en effet. Les représentations volumiques à base de voxels possèdent plusieurs propriétés très intéressantes pour le jeu-vidéo. La première utilisation qui vient à l'esprit concerne évidemment le rendu direct de phénomènes semi-transparents. Les voxels fournissent une représentation naturelle pour les effets volumiques tels que les gaz, les liquides, les nuages et tous les milieux participatifs en général.
Mais, au delà des phénomènes semi-transparents, les voxels permettent également de représenter efficacement des géométries extrêmement complexes, telles que les maillages produits par des logiciels de modélisation comme ZBrush. De tels maillages sont composés d'un très grand nombre de triangles d'une taille bien inférieure à un pixel. Leur rendu par rasterisation classique s'avère extrèmement inefficace car cela nécessite l'utilisation de techniques de multi-sampling massif afin d'en assurer un filtrage correct (éviter l'aliasing). De plus, l'utilisation de techniques de simplification (LOD) sur de tels maillages, en plus de réduire la qualité du rendu, demande énormément de travail d'authoring qui est difficilement automatisable (simplement car c'est un problème mal posé). Les voxels, au contraire, fournissent une représentation naturellement filtrable de la géométrie. Ils permettent ainsi d'unifier géométrie et texture en une représentation unique sur laquelle le LOD est bien définit.
   
Q3 Les Voxels sont réputés gourmands en mémoire et bande passante. Est-ce que votre technique "Ray-Guided Streaming" atténuent ces défauts ?
A3 Tout à fait, et elle a été développée pour ca !
Tout d'abord, les GigaVoxels reposent sur une structure hiérarchique d'Octree qui permet de compresser les zones totalement vides ou constantes, tout en subdivisant les zones détailles. De plus, cette structure est totalement dynamique et gérée par un mécanisme de cache qui permet de manipuler des volumes de voxels de taille virtuellement infinie. Ce cache charge les données à la demande sur le GPU, et recycle les emplacements mémoires les plus anciennement utilisés. Les requètes de chargement/subdivision sont émises directement par les rayons lors du rendu par ray-casting, ce qui permet de ne charger que le minimum de données réellement visibles et non occultées.
Tous ces mécanismes sont implémentés et exécutés entièrement sur GPU (en CUDA), laissant ainsi le CPU totalement libre pour tout autre calcul.
   
Q4 L'industrie graphique a choisit massivement les maillages polygonaux pour représenter des objets 3D, au point que l'élément de base des cartes graphiques est le triangle. N'avez-vous pas l'impression d'aller à contre-sens des évolutions du sous ensemble graphique ?
A4 Non bien au contraire, je pense que l'évolution actuelle des processeurs graphiques va justement dans le sens de l'ouverture à l'implémentation efficace de nouveaux pipelines de rendus tels que le notre. Les GPU évoluent vers de plus en plus de généricité, les fonctions fixes en charge de l'optimisation du traitement des triangles disparaissent petit à petit au profit d'unités de calcul génériques dédiées aux traitements massivement parallèles. Les GPUs de la génération du G80 de NVIDIA sont plus des clusters d'unités de calcul SIMD que des accélérateurs pour la rasterisation de triangles. L'implémentation d'algorithmes de rendu alternatifs passe par la programmation en C++ (via CUDA) de ces clusters de calcul, et cela devient alors un pur problème de parallélisme. Je pense que ce mode de programmation va rapidement remplacer l'utilisation des API graphiques historiques (OpenGL/Direct3D), et ainsi ouvrir la voie a l'utilisation massive de techniques de rendu alternatives.
   
Q5 Pensez-vous que les jeux pourraient tirer profit des GigaVoxels ?
A5 Oui je pense, et certains studio de développement de jeux s'y intéressent déjà !
   
Q6  Les GigaVoxels supportent-il des animations et des déformations ?
A6 Ils sont compatibles avec en tout cas. L'animation complète du contenu des voxels en lui même est difficile, du fait de la masse de données à transférer. Par contre, la déformation est beaucoup plus aisée. Nous n'avons pas encore de démonstration de ce genre d'effet, mais nous y travaillons.
   
Q7 DirectX11 introduit la subdivision et des techniques de tesselation dynamique de polyèdres. Ces techniques peuvent-elles être utilisées pour la visualisation de Voxels ?
A7 Pour moi, ces fonctions n'apportent rien de vraiment nouveau pour le rendu de voxels. Les geometry shaders en leur temps ont permis l'implémentation plus efficace de techniques d'extraction de surfaces à partir de grilles de voxels comme les marching cubes. On pourrait peut être imaginé une implémentation des marching cubes exploitant ces nouveaux hardwares, mais pour moi l'intérêt des voxels n'est vraiment pas de les visualiser en passant par des surfaces triangulées.
   
Q8 Aujourd'hui on connait très bien les méthodes de création de surfaces triangulées (outils DCC tels que 3ds max, Maya...). Mais comment peut-on générer et créer des Voxels ?
A8

Ils peuvent etre générés de différentes façons. Dans le cadre de fluides par exemple, ils peuvent etre générés par simulation numérique, il s'agit d'ailleurs généralement de la représentation naturelle de ce genre de simulation. Ils peuvent également etre issus de la numérisation d'objets par scanners, ou générés par voxellisation de maillages triangulés classiques. Il commence également à apparaitre des logiciels de modélisation directe par voxels tel que 3D-Coat, qui est un logiciel aux fonctionnalités proches de ZBrush.

   
Q9 Pouvez-vous nous parler des évolutions futures des GigaVoxels et leurs applications ?
A9 Nous nous intéressons maintenant à des problèmes spécifiques de filtrage afin de d'implémenter efficacement et avec une haute qualité d'effets blurry tels que le Depth-Of-Field, les glossy reflexions ou les soft-shadows. Nous travaillons également sur l'animation par déformation d'objets gérés par GigaVoxels.
   
   
 
  Search on 3d-test with Google
      A PROPOS DE 3D-TEST            INFORMATIONS LEGALES               LINKS              TRANSLATE WITH GOOGLE
 
© 2001-2007 3d-test, Panorama of web 3D technologies, 3d-test is edited by Westimages Realtime 3D Solution Provider