IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Amélioration de maillage


Sujet :

Traitement d'images

  1. #1
    Membre régulier Avatar de xtra.creativity
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 108
    Points : 84
    Points
    84
    Par défaut Amélioration de maillage
    Bonjour,

    Je cherche a améliorer un mesh qui contient un nombre tres important de faces (triangle) inutile car sur le même plan que ses voisin. Quelqu'un aurait une idée d'algorithme ?

    Je pensais a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Tant qu il y a des changement 
    {
      pour toutes les faces
      {
        Si les normales des voisin de la face en cours sont égales
        {
          Se supprimer soit même et ses voisins et créer la nouvelle face
        }
      }
    }
    Mais c'est pas trop performant je pense...... Peut etre quelque chose de récursif ...


    Merci
    Deux intellectuels assis vont moins loin qu'un con qui marche ...

  2. #2
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    le forum me semble bon, mais le probleme n'a pas l'air super evident a premiere vue...

    la solution de fusionner des triangles qui ont des voisines normales peut etre une premiere approche.

    Tu peux peut-etre etendre l'algo, et a partir d'une face, trouver toutes ses voisines qui ont des normales dans la meme direction, avec une tolerance definie a priori.

    Il faut reflechir ensuite si tu gardes un maillage triangulaire ou avec des faces quelconques : si tu fusionne plusieurs triangles, la face resultante ne sera plus un triangle, mais un polygone... Tu peux retrianguler ton polygone, mais du coup ton gain sera faible.

    Ensuite, si tu as deux faces polygonales qui se touchent, il est possible que leur frontiere soit constituee de plusieurs aretes quasiement paralleles. Tu dois donc pouvoir remplacer la chaine par un simple segment, et reduire le nombre de sommets du polygone

    voila, en esperant que ca aide un peu...

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    On a déjà abordé le sujet de la "simplification de mesh" sur le forum. Peut-etre que tu pourrais utiliser cette technique pour ton problème ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre régulier Avatar de xtra.creativity
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Oui et non, je veux evidement que mes faces restent des triangles. Et je ne veux pas simplifier mon maillage. Je dois etre en tout point identique mais que les faces voisines sur un meme plan (les normales vraiment egales) soient fusionner. La structure du document http://www.melax.com/polychop est bien.
    Mais ce que je cherche c'est un algorithme efficace ....

    Je viens de faire ca: Si vous pouvez me dire ce que vous en pensez ca m aiderai ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Simplification(Mesh)
    { 
         List<face>  ListeFaceAFusionner;
         Pour toutes les faces du Mesh()
        {
              ListeFaceAFusionner.clear()
              RechercheVoisinPlan(Face,ListeFaceAFusionner);
              Fusionnner(ListeFaceAFusionner);
        }
    }
     
    RechercheVoisinPlan(Face,ListeFaceAFusionner)
    {
        Pour toutes les faces voisines 
        {
             si(VerifiePlan(Face, VoisinX ,ListeFaceAFusionner))
                   RechercheVoisinPlan(VoisinX,ListeFaceAFusionner);
        }
     
    }
    Fusionnner(ListeFaceAFusionner)
    {
           Creer les nouvelles Face (Triangles)
           Supprimer toutes les faces de ListeFaceAFusionner dans le mesh
           Ajouter les faces creer dans le mesh
    }
     
    bool VerifiePlan(Face1 , Face2, ListeFaceAFusionner)
    {
         si (Face1.normal == Face2.normal )
         {
                   ListeVertexAFusionner.Push_back(Face2);
                   ListeVertexAFusionner.Push_back(Face1);
                   retourne vrai
         }
        retourne faux
    }

    Je bloc un peu sur la fonction Fusionnner ...
    Deux intellectuels assis vont moins loin qu'un con qui marche ...

Discussions similaires

  1. [ Eclipse 3 vs 2.1.2] Quelles sont les améliorations ?
    Par geegee dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 26/05/2004, 16h55
  2. aide en programmation opengl:maillage 3d de visage
    Par lisser dans le forum OpenGL
    Réponses: 4
    Dernier message: 14/05/2004, 23h25
  3. visualisation d'un maillage
    Par pcarnal dans le forum OpenGL
    Réponses: 2
    Dernier message: 23/04/2004, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo