Calcul parallèle pour la manipulation de maillages 2D/3D

Encadrants : Florence Zara, Fabrice Jaillet (LIRIS-SAARA)
Collaboration : Claudio Lobos (Chili)
Détails : Le stage se déroulera au sein du laboratoire LIRIS (bâtiment Nautibus).
Domaine : Informatique graphique, parallélisme.
Compétences requises : C++, éventuellement multi-CPU (OpenMP, MPI), GPU.

Sujet :

Le projet ECOS « Simulateurs pour l'Apprentissage des Gestes de l'Accouchement » vise le développement d'un environnement de Réalité Virtuelle permettant la réalisation d'un simulateur pour l'apprentissage du geste médical de l'accouchement. Ce simulateur est composé d'une simulation numérique couplée à un dispositif physique. Un des enjeux majeurs de la partie numérique est la complexité des interactions entre les objets. Ces dernières peuvent être internes, comme le contact entre l'utérus et le foetus durant une contraction, ou externes comme la pression des forceps sur la tête fétale.

Dans ce projet, une des pistes de recherche concerne l'utilisation de maillages dit mixtes, combinant différents types d'élements (triangles, quadrangles en 2D ou tétraèdres, hexadèdres, prismes et pyramides en 3D). Ce modèle géométrique, couplé à une technique de simulation adaptée, devrait permettre de gérer des scènes complexes en temps réel compatible avec un tel simulateur de réalité virtuelle.


[Maillage 2D (quadtree)]


[Maillage 3D (octree) - C. Lobos]


[Adaptation locale du maillage]

Une des étapes est donc d'introduire des maillages de grande qualité pour les différents organes présents dans la scène. Une première version été développée en collaboration avec notre partenaire chilien (MixedMesh). Elle permet la création initiale de maillages en se basant sur une structure de quadtree en 2D et d'octree en 3D, très utilisée en Informatique Graphique. Elle permet en outre l'adaptation de la résolution du modèle en fonction des actions de l'utilisateur, et notamment de mettre plus de détails uniquement dans les zones d'intérêt, afin de réduire les temps de calcul.

Il s'agira, dans ce stage, d'améliorer les fonctionnalités et d'optimiser les temps de calcul, notamment en proposant des algorithmes parallèles (multi-CPU ou GPU) pour les étapes clés :

  • Étude des algorithmes séquentiels existants, et proposition de structure quadtree ou octree adaptée au calcul parallèle.

  • Optimisation et programmation multi-CPU (OpenMP, MPI) ou GPU des algorihmes,

  • Développement d'un module de raffinement local du maillage (pour ne pas refaire tout le maillage lorsque l'on ajoute des détails),

  • en extension, couplage du générateur de maillage avec le simulateur de réalité vituelle, via la création d'une librairie dynamique.


[Image du simulateur SAGA avec scène 3D d'accouchement]