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 :

récuperer un objet, OPENGL-GLUT


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut récuperer un objet, OPENGL-GLUT
    Bonjour,

    J'aimerai bien savoir la primitive d'opengl-Glut où une astuce pour avoir récuper un objet de la scéne afin de le supprimer.

    J'ai chercher dans l'API de openGL et Glut et j'ai pas trouvé

    merci en avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Ta question ne me semble pas tres claire. A priori, OpenGL ne gere pas des objets, il gere des fonctions de dessins .

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut
    Je pense que j'ai pas bien expliquer ma question :

    en faite, j'ai un dessin qui contient plusieurs objets et je cherche une primitive d'OpenGL où de GLUT qui permis d'identifié l'objet qui intersecte avec un rectangle que je defini moi-même ces coordonnés. et après supprimer cet objet qui se trouve dans cette zone de la fenêtre.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Alors c est niet. Sous OpenGL tu manipules des fonctions de dessin, pas des objets.

    Quand tu affiches un polygone (soit par glBegin() / glEnd() ou par des primitives GLUT) tu indiques juste au GPU, que tu veux qu'il dessine ceci ou cela. D'ailleurs tu le reprecises a chaque nouveau rendu de l image ... ce qui montre que l information de structure de scene n'a pas d'existe du point de vue OpenGL.

    Si tu veux faire de l intersection d objet puis de la destruction, il va falloir toi meme coder tes primitives d intersection (ou utiliser la lib qui va bien) et toi meme definir la notion de objet. Par exemple.

    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
     
     
    class triangle {
     
      float3 a,b,c;
     
    };
     
    class Object3D {
     
    virtual sphere getBoundingSphere() const = 0;
     
    virtual void getTriangles(triangle * , int * count) const = 0;
     
    virtual void draw() const = 0;
     
    };

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut
    Merci beaucoup Smashy pour ta réponse.

    en faite, je suis obligé d'utilisé la lib openGl-Glut. et je suis entrain de coder en langage C, Ceci dit, tu as pas des exemples de code en C concernant l'intersection et la destruction.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    non, desole, je n ai pas de code sous la main. Mais cela ne semble a premiere vue pas tres complique. Il faut que tes objets soient capables d'evaluer un volume les englobant, et de tester la collision de ce volume avec ton rectangle. Ensuite un delete C++ fait un peu pres l affaire.
    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
     
    vector<Object3D *> objects;
     
    vector<Object3D *>::iterator it = objects.begin();
     
    while (it != objects.end()){
     
      Object3D * o = *it;
     
      if (collision(o->getBoundingSphere() , myrectangle)){
     
        delete o;
     
        it = objects.erase(it)
      }
      else
      {
        ++it;
      }
     
     
    }
    ou un truc approchant

Discussions similaires

  1. Texture sur un objet 3D (openGL+glut)
    Par betsprite dans le forum OpenGL
    Réponses: 36
    Dernier message: 06/05/2010, 21h17
  2. Réponses: 4
    Dernier message: 03/05/2005, 09h03
  3. OpenGL GLUT et socket
    Par gloufy dans le forum GLUT
    Réponses: 12
    Dernier message: 03/06/2004, 13h12
  4. OpenGL, GLut... comment?
    Par big_gie dans le forum GLUT
    Réponses: 2
    Dernier message: 16/07/2003, 11h25
  5. Configurer OpenGL/Glut avec C++Bluider
    Par MiGoN dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/09/2002, 23h18

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