Master Recherche Technologies de l'Internet
Université de Pau et des Pays de l'Adour
Proposition de stage
Approches hiérarchiques pour la visualisation d'isosurfaces en temps réel
Présentation du sujet
L'extraction puis la visualisation d'isosurface(s) est la méthode la plus utilisée afin d'analyser les volumes de données numériques. Si cette fonctionnalité est disponible dans le premier outil de visualisation scientifique venu, l'utilisateur est néanmoins souvent désemparé devant la qualité de la surface qu'il parvient à extraire, comparée aux superbes surfaces que l'on trouve dans les documentations ou articles de recherche. Le choix de la méthode et son paramétrage, les pré-traitements et post-traitements nécessaires, leur adaptation aux données, sont des facteurs de réussite qu'il est difficile au néophyte de maitriser et qui demandent en général beaucoup de temps et d'ajustements.
Le premier problème auquel doit faire face l'utilisateur est de déterminer avec justesse la ou les isovaleurs à utiliser. Il existe essentiellement deux approches pour résoudre ce problème. La première est basée sur l'analyse des informations en entrée (input) alors que la seconde analyse les données résultat (output). Concrètement on analyse le volume de données via une approche statistique et on déduit de cette information les isovaleurs pertinentes, soit automatiquement soit semi-automatiquement (affichage d'indicateurs graphiques et choix final par l'utilisateur). La seconde approche consiste à définir une isovaleur, au hasard ou pas tout a fait au hasard, à apprécier la surface ainsi extraite puis à ajuster l'isovaleur jusqu'à obtention du résultat attendu. Ceci implique alors l'extraction et la visualisation de plusieurs isosurfaces avant d'obtenir le résultat recherché. Dans le contexte d'un processus d'exploration interactive d'un volume de données, il est indispensable que l'extraction puis l'affichage d'une isosurface puisse être réalisé en un temps très court, quitte à se montrer moins exigeant quant à la qualité des surfaces ou images produites (cette alternative, marquées par le OU, se comprend plus facilement en lisant la suite). En effet, lors de ce processus de paramétrage, on apprécie plus l'endroit ou passe l'isosurface que la qualité géométrique et topologique de celle-ci, qui pourra être recalculée de façon plus précise plus tard.
Différentes solutions ont été proposées afin d'accélérer le calcul :
- modéliser à différents niveaux de détails et adapter le niveau d'abstraction utilisé en fonction des contraintes temporelles,
- accélérer la recherche des cellules intersectées par l'isosurface : utilisation de structures de recherche (cf cours et projet de VS),
- accélérer la reconstruction de l'isosurface : utilisation de techniques de type point-rendering,
- utiliser une algorithmique différente : typiquement le lancer de rayons, ce qui permet en particulier de ne traiter que la partie visible de l'isosurface,
- utiliser les fonctionnalités des dernières cartes graphiques 3D afin de faire exécuter une partie du travail par le matériel, typiquement la phase d'affichage.
Chaque nouvelle méthode a évidemment ses avantages et ses inconvénients mais elle permet toujours de rendre plus efficace une partie du pipeline d'extraction et de visualisation d'isosurface. On aimerait par conséquent constituer un pipeline avec les techniques les plus efficaces pour chaque étape. Ce n'est toutefois pas si simple car les méthodes ne sont pas forcément compatibles et les faire fonctionner ensemble peut s'avérer décevant. Par exemple les structures de recherches accélèrent considérablement la mise à jour de la liste des cellules actives mais elles ne sont pas très bien adaptées à une phase d'affichage par point-rendering (ordre des cellules inadapté en général) et la taille de la structure de données qu'elles requièrent ne permet pas de les exécuter sur la carte graphique, ce qui engendre alors un coût de transmission des données du CPU vers le GPU très pénalisant. Le traitement des très gros volumes de données reste également un problème, notamment pour les méthodes utilisant l'accélération hardware.
L'objectif de se travail est d'étudier en détails le comportement des principales méthodes proposées puis de faire des propositions pour un pipeline d'extraction d'isosurfaces en temps réel. Les approches à base de modèles hiérarchiques retiendront tout particulièrement l'attention afin de traiter de gros volumes de données.
Déroulement du stage
Le plan de travail envisagé est très classique :
- bibliographie indispensable sur les travaux plus ou moins récents dans le domaine (rendu basé points, affichage par lancer de rayons, implémentations matérielles (par shaders), modèles hiérarchiques de volumes numériques),
- caractérisation/classification des différentes méthodes, implémentations éventuelles et identification des "verrous technologiques",
- proposition de nouvelles approches et expérimentation.
Le travail comportera une part importante de développement et d'expérimentation des algorithmes sur différents volumes de données, développements qui seront réalisés à l'aide de C++/OpenGL/Qt (en suite logique du projet de VS).
Mots-clés
Visualisation scientifique, extraction d'isosurfaces, temps réel.
Bibliographie et liens utiles
Co C., Hamann B. and Joy K. Iso-splatting: A Point Based Alternative to Isosurface Visualization. Pacific Graphics 2003.
Livnat Y. and Tricoche X. Interactive Point Based Isosurface Extraction. IEEE Visualization 2004.
Rymon-Lipinski B., Hanssen N., Jansen T., Ritter L. and Keeve E. Efficient Point Based Isosurface Exploration using the Span Triangle. IEEE Visualization 2004.
Botsch M., Hornung A., Zwicker M. and Kobbelt L. High Quality Surface Splatting on Today's GPUs. Eurographics Symposium on Point-Based Graphics 2005.
Hadwiger M., Sigg C., Scharsach H., Buhler K. and Gross M. Real Time Ray Casting and Advanced Shading of Discrete Isosurfaces. Eurographics 2005.
Qingmin S. and J. Jaja. Isosurface Extraction and Spatial Filtering using Persistent Octree (POT). IEEE Visualization 2006.