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 :

Selection: problème avec les polygons cachés


Sujet :

OpenGL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Selection: problème avec les polygons cachés
    Bonjour à tous,
    Je soumets un petit problème que je n'arrive pas résoudre depuis plusieurs jours. J'ai lu de nombreux documents, testé plusieurs approches mais en vain... Je post donc ce message avant de virer dans la folie et suis preneur de tout conseil éclairé. Le problème est le suivant: j'ai 2 polygons ayant la même orientation (même normal) dont l'un est derrière l'autre. Je positionne la caméra de manière à ne pas voir le polygon situé en retrait, et lorsque j'effectue une selection (picking puis selection) sur mon polygon avant, je récupère toujours l'id du polygon avant (ok!) mais également toujours l'id du polygon en retrait (pourtant caché par l'autre) !!! J'ai beau jouer avec les buffers mais apparement, pas comme il faut. Voilà, gspr que vous serez indulgent si la solution est simple et attends avec intérêt vos réponses!!!
    a+

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Quelle est la methode de picking utilisee ? Si c'est le picking OpenGL "classique", tu recevras toujours les deux polygones. OpenGL renvoie tous les objets se trouvant dans la fenetre de rendu qu'importe s'ils sont caches ou non.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 894
    Points : 219 536
    Points
    219 536
    Billets dans le blog
    124
    Par défaut
    glEnable(GL_LIGHTING);

    Quitte à faire un picking simple, et même si cela renvoit les deux objets, on peut toujours réussir à calculer l'objet le plus proche.
    Effectivement, l'objet le plus proche de la camera, ne sera que la distance entre la camera et l'objet, dans l'espace de coordonnée camera.
    Bon après, il faudrait que quelqu'un donne plus d'indication, car moi, j'ai trop peur de dire ( d'avoir déjà dit ) des betises.

    glDisable(GL_LIGHTING);

    Voilà mon conseille éclairé ...

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ok, tout d'abord merci de m'avoir répondu. Alors la méthode de selection que j'utilise est basée sur les Id (glLoadname...) : étant donné que ce n'est pas celle basée sur la couleur des pixels, je suppose que j'utilise la technique classique. (Nb: je souhaite effectivement ne pas utiliser la selection par couleur). J'ai effectivement vérifié et j'obtiens toujours tous les polygones de mon volume. Comme je souhaite selectionner les polygones uniquement en surface, est-il possible de ne retenir dans le z-buffer que les polygons apparent par un traitement quelconque.
    J'avais en tête de dessiner la scene une fois (pour remplir le z-buffer), puis de la redesssiner une seconde fois en filtrant les fragments les plus proches de la caméra, et par exemple les placer dans un autre buffer. Pensez-vous qu'il est possible de faire ce type de traitements en opengl, avec un, ou plusieurs buffers? ou s'il existe une technique de selection plus avancée qui résoudrait ce pti pb ? Cela doit surement exister car cela revient à selectionner les polygons apparents d'un objets solide que l'on peut faire avec la plupart des logiciels 3D!!

    A bientôt


    ps: glEnable(GL_LIGHT0..8) m'apporte effectivement une certaine lumière!! Aussi, est-ce que par les seules informations données par le z-buffer on peut savoir si un polygone est caché par un autre?

  5. #5
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    La seule solution (simple) a ce probleme est de faire le picking par couleur si tu veux utiliser le GPU pour le calcul... Car meme si tu remplies le z-buffer comme tu veux, les instructions de dessin seront envoyees au pipeline de rendu et il enregistrera ton objet (meme s'il n'est pas affiche au final car supprime par le z-test).

    Sinon il y a toujours la solution d'utiliser le CPU et de faire un lance de rayon sur l'ensemble des triangles et de garder le triangle le plus proche et de savoir a quel objet il appartient (solution la plus facile mais la moins rapide car utilisant le CPU mais si ta scene a moins d'un million de triangles ca devrait etre ok).

Discussions similaires

  1. problème avec les résultats d'une requête select top1
    Par kariiim dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/03/2007, 15h05
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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