![]() | TP MeshLab | ![]() |
Prise en mainPour charger le fichier, dans le menu File sélectionnez : Import Mesh...Ensuite, pour l'affichage ouvrez le menu View Puis activer Show Layer Dialog Pour les repères, ouvrez le menu Render Activez : "Show Axis" et "Show Quoted Box" (Q1) Devinez pourquoi le maillage est sombre et modifier le pour qu'il soit correctement éclairé. Un indice : dans le menu Render explorez le sous menu Lighting et ajustez le pour palier temporairement au défaut. Sélectionnez ensuite Render Mode / BackFace culling et concluez.Enfin rechercher dans Filter le sous menu puis l'action à executer pour corriger définitivement le problème que vous avez identifié. Le nombre de faces et de sommets s'affichent à différents endroits. Mais pour avoir les caractéristiques topologiques allez dans le menu : Filters / Quality Measures and Computation / Compute Topological Measures (Q2) Expliquez les résultats obtenus grâce à la relation d'Euler. A l'aides des cardinaux, démontrez qu'il s'agit bien d'une triangulation. Les caractéristiques géométriques s'obtiennent de la même façon : Filters / Quality Measures and Computation / Compute Geometrical Measures Notez la valeur du volume et de la surface de la frontière. | Pour commencer nous allons charger le maillage ci-joint dans MeshLab et adapter l' affichage afin d'obtenir la même vue que sur l'image ci-dessous.![]() Profitez en pour explorez d'autres fonctions très utiles, par exemple :
|
Boucher les "trous"Chargez le maillage ci-joint (le fameux bunny de Standford) dans MeshLab et procédez aux ajustements nécessaires.Réorientez la surface et activez le BackFace Culling (il est possible que vous amélioriez le FPS qui s'affiche en temps réel en dessous de la vue). Essayez de calculer le volume : Affichez les arêtes de bord via le menu Render/Show Boundary Edges (Q3) Affichez les caractéristiques topologiques et expliquez le résultat à l'aide des définitions du cours (connexité). D'après vous, que signifient : "Unreferenced Vertices", "hole" et "genus" ? Le mot "genus" se traduit en français par le "genre d'une surface". Supprimez les "Unreferenced Vertices" dans Cleaning and Repairing. | ![]() |
(Q4) Vérifiez que : 3*t = 2*a - a' avec a' les arêtes de bord Qu'en déduisez-vous sur le maillage (est-il mixte ou "Pure-Triangular" ?) Pour vous convaincre appliquer l'opérateur Turn into Pure-Triangular mesh (sous Remeshing...) | ![]() Vérifiez que : h + t - a + s = 2 (Q5) Retrouvez cette formule à partir de la relation d'Euler : f-a+s = 2 en imaginant que les "trous" dans la frontière (h) sont en réalité des faces pour une frontière fermée. |
Appliquez le correctif pour boucher les "trous" : Filters/Remeshing, Simplification and Reconstruction/ Close Holes Adaptez les paramètres de l'opération sans pour autant générer des surfaces présentant des auto-intersections. A l'issue de l'opération il est plus que probable que certains trous ne soient pas complètement bouchés... Comme sur la figure ci-contre où il reste 2 "trous" avec 6 arêtes de bord. Si c'est le cas après plusieurs tentatives, il va être nécessaire d'agrandir le ou les trous restant ! Sélectionnez les faces du bord : sous Filter/Selection/ sélectionnez Select Border Puis Dilate Selection (une ou plusieurs fois) jusqu'à donnez assez d'espace. Ré-appliquez alors Close Holes en espérant converger... | ![]() |
Correction et améliorationEn fonction de leur provenance (scan 3D, décimation "violente"...), il arrive que certains maillages soient très dégradés à la fois topologiquement et géométriquement . Il faut les corriger, les nettoyer, les améliorer... MeshLab permet de retravailler ces maillages à l'aide d'algorithmes puissants. C'est ce que vous propose l'exercice suivant. Chargez le fichier ci-joint et analysez sa topologie. Explorez les menus de MeshLab pour trouver les opérations permettant de corriger ces défauts. Vérifiez à chaque étape le résultat de vos opérations. Vous pourez être amené à générer des "trous" dans la surface : vous les boucherez comme vous l'avez fait dans l'exemple précédent. Pour l'amélioration géométrique vous pourrez utiliser Smoothg face normals et Curvature flipping optimization et bien d'autres. (Q6) Faite la liste des opérations que vous utilisez et commentez l'efficacité de leurs effets. | ![]() |
DécimationIl est souvent utile d'avoir plusieurs représentations de la même géométrie à des précisions différentes, entre autre pour la gestion des niveaux de détails (LOD).Pour ce faire il suffit de partir d'un modèle haute résolution et d'appliquer des opérations successives de décimation (suppression de triangles "non-utiles" partageant une même arête (Edge Collapse)). | ![]() V : 34834, E: 104288, F : 69451, BE : 223, H : 5 | ![]() V : 10491, E: 31328, F : 20834, BE : 154, H : 5 | ![]() V : 3155, E: 9407, F : 6249, BE : 67, H : 5 |
MeshLab propose un algorithme très efficace (Quadric Edge Collapse
Decimation) qui a permis de réaliser les 5 figures de droite. Le % de
suppression est fixé à 30% à chaque étape pour passer d'une
triangulation de 70kt à une de seulement 562 t. Appliquez l'opération : Filter/Remeshing.../Quadric Edge Collapse Decimation jusqu'à ce que la géométrie ou la topologie ne soit plus valide. | (Q7) Vérifiez que tous les maillages satisfont la relation d'Euler : h + t - a + s = 2 | ![]() V : 952, E: 2829, F : 1874, BE : 36, H : 5 | ![]() V : 289, E: 854, F : 562, BE : 22, H : 5 |
Comparaison de maillagesNous allons maintenant comparer 2 représentations du lapin : le modèle original (à gauche) et le modèle décimé (à droite).Chargez les fichiers et comparez les maillages d'abord en terme de volumes de données (cardinaux). Les caractéristiques géométriques peuvent être facilement comparées : Filter/ Quality Measure & Computation / Compute Geometric Measures (Q8) Comparez la variation de volume et la variation de surface et donnez les pourcentages. Ces mesures ne traduisent pas ce que l'oeil peut percevoir : la distance maximum entre 2 points correspondant dans les 2 modèles est un meilleur indicateur. | ![]() | ![]() |
Superposer
les 2 modèles géométriques permet d'estimer qualitativement les
grandes différences : quel modèle recouvre l'autre localement (figure
de gauche). Pour calculer la distance entre deux maillage MeshLab réalise des "échantillons" (Samplings) en de nombreux points et stoque les distances minimales (sur le maillage de référence) pour chacun de ces points. Une couleur peut être ensuite associée en fonction de la valeur (de la distance) et ainsi de localiser rapidement les défauts. Pour calculer la distance vous utiliserez : Filters / Sampling / Hausdorff Distance Pour visualiser les valeurs sur le maillage il vous suffit d'activer : Filters/Color Creation and Processing / Colorize by vertex Quality (Q9) Vérifiez que la distance entre les 2 maillages est inférieure à 3% (de la diagonale). | ![]() | ![]() |