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

OpenSceneGraph Discussion :

Récupérer l'organisation des faces


Sujet :

OpenSceneGraph

  1. #1
    Membre habitué Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    April 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : April 2012
    Messages : 171
    Points : 173
    Points
    173
    Par défaut Récupérer l'organisation des faces
    Bonjour,

    Je voudrais récupérer l'organisation des faces de mes géométries importé avec blender ou 3dsmax.
    Je récupere déja les vertex et les couleurs. Pour celà j'ai une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static_cast<UserData*>(drawable->getUserData())->setArray(drawable->asGeometry()->getVertexArray(), drawable->asGeometry()->getColorArray(), drawable->asGeometry()->getPrimitiveSetList());
    Les deux premier paramètre fonctionne mais getPrimitiveSetList() me retourne toujours qu'une seul primitive alors qu'il y a 8 vertex et que la géométrie est en mode triangle.

    Par contre quand je fabrique ma géométrie manuellement, ça marche.

    Merci d'avance, Robin

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    March 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : March 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par robinsondesbois Voir le message

    Les deux premier paramètre fonctionne mais getPrimitiveSetList() me retourne toujours qu'une seul primitive alors qu'il y a 8 vertex et que la géométrie est en mode triangle.

    Un PrimitiveSet comme son nom l'indique est un set de primitives.
    C'est donc un triangle, ou un triangle Strip, ou un Quad Strip, etc... (primives OpenGL)
    Si tu as un triangle fan ou strip, tu as bien un primitiveSet pour 8 vertices (1 vertex, plusieurs vertices...) et tu as un index array qui liste les index des vertices dans l'ordre pour que le primitives set se fasse.
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    Membre habitué Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    April 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : April 2012
    Messages : 171
    Points : 173
    Points
    173
    Par défaut
    A ok, donc si je fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            ref_ptr<PrimitiveSet> primitive = organisationFace.at(0);
    	GLenum t = primitive->getMode();
    	int t2 = primitive->index(3);
    Je récupère la première primitive, je regarde sont mode (4 d'après le débug). C'est donc des TRIANGLES, et triangle avec un S. Je suppose qu'il peut donc y en avoir plusieurs.


    primitive->index(id_face) retourne l'id vertex ?

  4. #4
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    March 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : March 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par robinsondesbois Voir le message
    C'est donc des TRIANGLES, et triangle avec un S. Je suppose qu'il peut donc y en avoir plusieurs.
    Oui, c'est une liste et l'ordre des vertex decide de la répartition des triangles :



    Citation Envoyé par robinsondesbois Voir le message
    primitive->index(id_face) retourne l'id vertex ?
    Heu je suppose, va voir la doc pour ce genre de questions, c'est ce que ferais pour te répondre... (j'ai pas utilisé ça depuis tres longtemps)
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  5. #5
    Membre habitué Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    April 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : April 2012
    Messages : 171
    Points : 173
    Points
    173
    Par défaut
    Heu la doc...

    virtual unsigned int osg:rimitiveSet::index ( unsigned int pos ) const [pure virtual]

    Implemented in osg:rawArrays, osg:rawArrayLengths, osg:rawElementsUByte, osg:rawElementsUShort, and osg:rawElementsUInt.
    virtual unsigned int osg:rawElementsUShort::index ( unsigned int pos ) const [inline, virtual]

    Implements osg:rimitiveSet.
    J'ai rien contre la doc d'osg mais des fois elle est un peut vide

    Je vais voir se que je peut faire, merci pour ses précisions en tous cas.

  6. #6
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    March 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : March 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par robinsondesbois Voir le message
    J'ai rien contre la doc d'osg mais des fois elle est un peut vide
    Oui parfois faut un peu d'imagination c'est vrai ^^

    Le plus fiable, c'est encore d'aller voir directement dans le code si tu as un doute.
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  7. #7
    Membre habitué Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    April 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : April 2012
    Messages : 171
    Points : 173
    Points
    173
    Par défaut
    Je confirme : primitive->index(id_face) retourne id_vertex.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer la liste des noms des champs d'une table
    Par la_didise dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 17h55
  2. Comment récupérer la liste des contacts de outlook express?
    Par arnaud_verlaine dans le forum Outlook Express / Windows Mail
    Réponses: 6
    Dernier message: 12/10/2004, 16h53
  3. Organisation des classes
    Par R3iTt0R dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2004, 18h27
  4. Comment récupérer la liste des logiciels installés sur une machine ?
    Par david_chardonnet dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 19/09/2003, 18h41
  5. Récupèrer la liste des disques durs
    Par Tililian dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/06/2003, 13h42

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