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

OpenGL Discussion :

placement d'objets dans la scène


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut placement d'objets dans la scène
    Bonjour à tous.

    Voilà, je débute en openGL et j'aimerai m'initier dès le départ avec les bonnes méthodes de programmation.

    Dans le cadre d'un examen que je suis en train de refaire pour réviser, il faut tracer une grue , ce tracé se décompose en plusieurs élements : (colonne, base ...)

    Ma question est la suivante :

    Dans la procédutre tracerGrue :dois-je écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void tracerGrue(){
       glPushMatrix();
          tracerBase();
       glPopMatrix();
       glPushMatrix();
           tracerColonne();
       glPopmatrix();
     
    }
    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     void tracerBase(){
     //code pour tracer la base
    }
     
    void tracerColonne(){
     //code pour tracer la colonne
    }
    OU -----------------------------------------


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     void tracerGrue(){
       tracerBase();
       tracerColonne();
    }
    avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     void tracerBase(){
       glPushMatrix()
            //code pour tracer la base
       glPopMatrix()
    }
     
     
    void tracerColonne(){
       glPushMatrix()
            //code pour tracer la colonne
       glPopMatrix()
    }

    Merci à vous

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    en fait, il faut plutot faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void tracerGrue()
    {
        glPushMatrix()
            tracerBase();
            glPushMatrix();
                tracerColonne();
            glPopMatrix();
        glPopMatrix();
    }
    comme ca, si tu deplace la base, la colonne suivra le mouvement. Il faut vraiment voir ca comme une hierarchie d'objet. Si tu veut avoir un objet dont dependent d'autres objet, alors, il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    pushMatrix()
        dessin de l'objet
        dessin des sous objets avec leur push/pop
    posMatrix()
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut
    ok, je vois donc lors de la création, il faut construire une sorte d'arbre de hiérarchie

    si je prends une voiture par exemple avec 2 roues un "corps" et le cockpit on aurait donc une sorte d'arbre comme celui ci :

    Voiture
    I
    cockpit
    I
    corps
    / \
    roue1 roue2

    Si je bouge la voiture, tous les elts bouge

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par bonofred
    il faut construire une sorte d'arbre de hiérarchie
    et la, tout est dit... c'est exactement ca
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut
    Si j'ai bien compris, pour le tracé d'une voiture , tu me conseilles de faire :

    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
    tracerVoiture(){
        glPushMatrix()
          tracerCockpit();
       glPopMatrix()
    }
    
    tracerCockpit(){
       glPushMatrix()
          tracerCorps();
         glPopMatrix()
    }
    
    
    tracerCorps(){
       glPushMatrix()
           tracerRoue();
           glTranslate(...)
           tracerRoue();
       glPopMatrix()
    }
    
    
    tracerRoue(){
      glPushMatrix()
    //    Dessiner un cercle
    glPopMatrix()
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut

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

Discussions similaires

  1. Irrlicht 3D : Mouvement d'objets dans une scène
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 22/04/2013, 20h12
  2. Orientation d'un objet dans une scène
    Par Invité dans le forum Mathématiques
    Réponses: 9
    Dernier message: 07/10/2010, 20h16
  3. Réponses: 1
    Dernier message: 21/10/2009, 15h21
  4. Insérer un objet 3D dans une scène OpenGL
    Par choko83 dans le forum OpenGL
    Réponses: 11
    Dernier message: 08/10/2009, 14h03
  5. fixer un objet dans une scène en rotation
    Par amine84 dans le forum 3D
    Réponses: 1
    Dernier message: 30/08/2009, 03h39

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