Projet image 2016 : Phases de membranes en milieu aqueux

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet Phases de Membranes en milieu aqueux
Cadre Projets de spécialité
Page principale Projets de spécialité image

Encadrants Marie-Paule Cani, Thomas Delame

Étudiants

Contexte du travail

Didier Roux, chercheur en biologie et futur professeur au collège de France, a contacté l'équipe de Marie-Paule Cani car il avait besoin d'un support visuel pour expliquer le phénomène d'évolution de membranes en phase aqueuse. Une membrane peut être considérée comme une surface qui fluctue aléatoirement (agitation thermique des molécules). Une telle membrane se forme par exemple en mélangeant de l'huile et de l'eau, une expérience que nous faisons tous les jours, sauf que notre domaine d'intérêt se trouve à l'échelle microscopique. Dans notre cas, nous nous intéressons aux différentes transitions de phases de la membrane au cours du temps (d'une phase lamellaire à une phase éponge puis d'une phase éponge à une phase de vésicules).

Le phénomène physique

Notre membrane est constituée par l'agglomération de molécules amphiphiles (contenues dans un liquide tensioactif). Ainsi lorsque l'on mélange de l'eau avec un petit peu de tensioactif (de l'ordre de 1%). On obtient des membranes dans de l'eau. Ces molécules amphiphiles ont une tête hydrophile et une queue hydrophobe. La tête est donc orientée vers l'eau (cf dessin) et ces molécules s'agglutinent au niveau de la queue pour qu'elles ne soient pas en contact avec l'eau.

Bicouche.png

Les membranes constituées par les molécules amphiphiles se représentent donc sous forme de lamelles séparant 2 volumes d'eau distincts. Les deux volumes d'eau (rouge et bleu) ne sont pas en contact. Avec l'agitation thermique (suite à une augmentation de température), cette membrane va onduler, chaque molécule ayant un mouvement brownien (désordonné car c'est un liquide). Cette phase constitue notre première phase : la phase lamellaire.


Lamella schema.png
Lamella opengl.png

Lors de ces ondulations, des collisions entre lamelles se produisent. Si cette collision se fait avec beaucoup d'énergie, les deux lamelles se repoussent. Si à l'inverse, elle est faite avec peu d'énergie, les deux lamelles se fusionnent. Au cours du temps, plus en plus de tubes inter-lamellaires se créent. Lorsque l'on arrive dans un état anisotrope (où les entités telles que les tubes ne sont pas périodiques dans toutes les directions), c'est la phase éponge.

Tubes schema.png

Après cette phase, lorsque plusieurs tubes sont très proches, la surface liant ces tubes se referme sur elle même et une vésicule (petite sphère) se forme. Et on passe alors dans une phase de vésicules.

Vesicules schema.png

Objectifs du projet

L'objectif de ce projet est de créer un film visualisant les 3 différentes phases de la membrane avec les 2 transitions de phase associées. Il s'agit alors de rendre visible ce que Roux et al. n'ont pu que s'imaginer jusque là. En effet, aucun chercheur ne s'est encore attaché à cette tâche d'où le fort intérêt du projet.

Après avoir expliqué la modélisation du phénomène, nous allons voir que cet objectif a légèrement changé au cours du projet. Finalement, nous avons produit 2 films complémentaires, chacun montrant des aspects différents de la formation de la phase spongieuse.

Modélisation(s)

Vu que l'objectif de ce projet n'est de fournir qu'une animation du phénomène est non pas une simulation physique, nous n'avons modélisé que le mouvement de la membrane. Grâce à un premier rendez-vous téléphonique avec notre chercheur, nous avons pu comprendre les différents mouvements de la membrane pour ensuite passer à l'étape de modélisation.

Modélisation de la première transition

Mouvement de la membrane

La première transition commence dans l'état lamellaire et finit dans l'état spongieux.

Le premier état est caractérisé par un ensemble de plans parallèles qui ondulent de manière aléatoire, on parle aussi d'un mouvement brownien. Une contrainte particulière de ces plans est l'aire de leurs surfaces, elle reste constante au cours du temps. Les bosses résultantes des ondulations peuvent mener à des collisions inter-lamellaires. Ces collisions, aussi appelés "chocs", vont soit se résoudre comme une collision "normale", i.e. les deux bosses se repoussent, soit les deux bosses vont fusionner et créer un tube reliant les deux lamelles entre elles.

Collisions.png

La formation de tubes jusqu'à la perte complète de l'orientation de départ (des plans parallèles dont la normale est dirigée selon un certain axe) mène la membrane de manière continue dans l'état spongieux. On ne peut alors plus distinguer les plans entre eux, il s'agit d'un état géométriquement anisotrope.

Modélisation du mouvement de la membrane

La contrainte de l'aire constante de la surface de la membrane tout en ondulant est semblable à une contrainte qui pourrait régir sur un vêtement. C'est pour cela que nous avons décidé de la modéliser de la même manière, i.e. grâce à une représentation paramétrée. Il s'agit d'un maillage dont les sommets sont connectés entre eux par des ressorts. Les forces de ressort vont assurer une surface d'aire constante tout en laissant aux sommets la possibilité de bouger dans l'espace. Une représentation de notre système masse-ressort se trouve sur la figure en-dessous.

Masse ressorts.png

Nous avons décidé de modéliser le mouvement brownien par une force pseudo-aléatoire s’exerçant sur les sommets du maillage. Ce mouvement sans contraintes géométriques à du être restreint dans notre cas pour éviter de devoir gérer les collisions dans le plan de la lamelle. Dans notre implémentation, sa moyenne décrit la forme d'un cône aligné orthogonalement par rapport aux plans.

Le dernier aspect de la modélisation de cette phase est la formation des tubes. Résultant d'une collision entre deux sommets, nous avons choisi de remplacer les facettes voisines des sommets en question par des facettes reliant tous leurs sommets voisins entre eux afin de créer un tube entre les deux lamelles. D'un point de vue physique, il est important que ce tube sépare entièrement les deux volumes.

Modélisation de la deuxième transition

Cette transition rend compte du passage de l'état d'éponge à l'état vésiculaire. On utilise une technique dite des surfaces implicites. Pour cela on crée un squelette formé par des points et on trace les iso-surfaces d'un potentiel "émis" par ces points. Pour modéliser le phénomène physique, on fait dans un premier temps la simulation sans les potentiels. Puis, on affiche des points animés d'un mouvement aléatoire. Si deux points sont suffisamment proches, on les relie par un ressort pour modéliser la fusion de deux vésicules.

Modelisation implicite 1.png

Dans un deuxiéme temps on applique le marching cube et on obtient le resultat suivant:

Modelisation implicite 2.png

Implémentation

Ce projet a été codé en C++ et OpenGL. Il se base sur le dernier TP de la matière graphique 3D, ce TP prenant en compte une animation avec la physique du point avec Phong Shading.

Surfaces paramétrées

Pour la modélisation du maillage, nous avons utilisé la librairie OpenMesh sous forme d'un maillage triangulaire. Cette librairie nous a été très utile pour itérer sur les éléments du maillage (vertices, edges, faces, ...). Nous avons utilisé pour le rendu des patchs de bézier pour avoir un rendu plus agréable (lissage des triangles) sans augmenter la densité du maillage (ce qui nous faisait faire trop de calculs inutiles).

Surfaces implicites

Pour la modélisation avec surfaces implicites, nous avons utilisé Expressive Lab, un logiciel développé actuellement à l'Inria, pour voir si le rendu avec les surfaces implicites ressemblait à ce qu'on attendait. Cependant ce logiciel rendait l'animation difficile à gérer. Nous avons ensuite implémenter notre propre algorithme de marching cube pour obtenir un rendu dynamique.

Prise de vidéo

Pour la prise de vidéo, nous avons tout d'abord pensé à utiliser VLC. Cependant, la vidéo qui en résultait était saccadée. Nous avons donc décidé d'utiliser Apitrace qui nous permet de visualiser directement les frames de l'application.

Documentation technique

Pour plus de détails sur l'implémentation, consultez la documentation technique Fichier:Documentation technique.pdf.

Résultats

Première vidéo des surfaces implicites: Media: implicite_1.mp4

Deuxième vidéo des surfaces implicites: Media: implicite_2.mp4

Première vidéo des surfaces paramétrées : Media: explicite.mp4

Deuxième vidéo des surfaces paramétrées : Media: explicite_2.mp4

Conclusion

Problèmes rencontrés

Nous nous sommes confrontés à plusieurs problèmes. Tout d'abord, l'appropriation de la librairie OpenMesh ou encore le logiciel Expressive Lab a pris beaucoup de temps. De plus nous avons passé beaucoup de temps sur la détection de collision avec l'algorithme des volumes englobants pour se rendre compte qu'un algorithme aussi puissant et précis n'était pas nécessaire pour le rendu voulu.

D'autre part nous nous sommes rendu compte que la méthode des surfaces paramétrées n'étaient pas très adaptée à la visualisation des changements de topologie de la surface (création de vésicules). Pour ce qui est de la méthode des surfaces implicites, un des problèmes principaux a été la création du film. En effet le rendu avec Expressive n'était pas en temps réel, il était donc très long de faire une vidéo.

Quand nous avons commencé à faire les premiers films nous nous sommes heurtés au fait que la vidéo sortant de VLC était saccadée. Il a donc fallu opter pour une autre méthode : Apitrace.

Finalement, des petits ralentissements sont survenus lors des prises de contact avec le chercheur, où nous nous rendions compte que des détails ne correspondaient pas à la vision qu'en avait le chercheur. Il fallait donc régulièrement faire des légères modifications.

Perspectives

Il serait très intéressant de lier les deux méthodes dans un même film. En effet la méthode des surfaces paramétrées présente des avantages pour la première transition (de la phase lamellaire à la phase éponge) et la méthode des surfaces implicites, pour la deuxième transition (de la phase éponge à la phase de vésicules). Lors de l'implémentation, la position des vésicules est détectée. En effet nous partons du principe que lorsque 4 tubes se forment à égale distance d'un point central, cela est le début de formation d'une vésicule. Une piste serait d'élargir les tubes pour qu'ils se collent les uns aux autres pour ensuite former un volume intérieur. Il serait alors intéressant de fabriquer un squelette et un potentiel à partir de ce volume intérieur pour faire la transition avec les surfaces implicites.

Une autre piste serait de faire les deux transitions avec un modèle hybride entre surfaces paramétrées et surfaces implicites.

Bilan personnel

Il était très intéressant d'utiliser des nouveaux outils tels que OpenMesh, apitrace qui peuvent nous servir pour d'autres applications. Nous avons aussi apprécié découvrir de nouveaux aspects d'OpenGL dans les shaders (tessellation shader ou encore geometry shader). Malheureusement, au vu du faible nombre d'heures de TP de graphique 3D, nous n'avions pas pu voir ces aspects en TP. Il a été également très intéressant au cours de ce projet de satisfaire un client. Nous avons aussi apprécié expérimenter les limites d'une modélisation du point de vue des changements de topologie du maillage ou encore du fait que les surfaces implicites ne soient pas en temps réel.

Remerciements

Nous remercions notre encadrant Thomas Delame qui nous a permis de surmonter les difficultés techniques auxquelles nous avons été confrontés. Nous remercions également Marie-Paule Cani qui nous a apporté des réflexions pertinentes par rapport à la modélisation du problème. Et nous sommes reconnaissant envers l'aide que nous a apporté Antoine Begault quant à l'utilisation du logiciel Expressive Lab. Enfin, l'intégralité du projet n'aurait pas été possible sans l'intervention de Didier Roux et ses explications enrichissantes.

Références

[1] Vlachos, A., Peters, J., Boyd, C., & Mitchell, J. L. (2001, March). Curved PN triangles. In Proceedings of the 2001 symposium on Interactive 3D graphics (pp. 159-166). ACM.

[2] The Little Grasshopper, Triangle Tessellation with OpenGL 4.0

[3] OpenGL Video Capture