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 :

Problème de picking sur axe Z inversé


Sujet :

OpenGL

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Points : 90
    Points
    90
    Par défaut Problème de picking sur axe Z inversé
    Bonjour à tous,

    j'ai un petit problème de picking, l'axe original d'opengl est défini comme sur l'image qui suit


    Mais l'ai décidé de faire un scale de -1 en Z afin d'avoir l'axe Z en profondeur.

    Mon problème : le picking fonctionne ne fonctionne plus lors que je fais le scale négatif.

    J'utilise 2 simples morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /** Code pour afficher la caméra **/
     
    glLoadIdentity();
     
    glScalef (1., 1., -1.);
     
    //Multiplication avec la matrice de la caméra
    glMatrixMode(GL_PROJECTION);
    glMultMatrixd(_projectionMatrix);
    glMatrixMode(GL_MODELVIEW);
    glMultMatrixd(_modelViewMatrix);
    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
    /** code pour selectionner des models **/
    makeCurrent();
     
    // Prepare le mode de sélection
    // les paramètres retournes respectivement un int et un pointeur vers un int.
    glSelectBuffer(selectBufferSize(), selectBuffer()); 
    glRenderMode(GL_SELECT);
     
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    //A
    static GLint viewport[4];
    //récupération du viewport de la caméra
    currentCamera()->getViewport(viewport);
    //B
    //pick par rapport à un rectangle de sélection
    gluPickMatrix(point.x(), point.y(), selection.width(), selection.height(), viewport);
    //C
    //Multiplication avec la matrice de la caméra
    glMatrixMode(GL_PROJECTION);
    glMultMatrixd(_projectionMatrix);
    glMatrixMode(GL_MODELVIEW);
    glMultMatrixd(_modelViewMatrix);
    //D
    glRenderMode(GL_SELECT);
    //E
    drawWithNames(); //Fonction perso pour dessiner les objets en fonction de s'il ont été sélectionnés ou non.
    J'ai essayé de faire mettre glScalef (1., 1., -1.), dans le code de selection, à tous les emplacements possibles (A,B,C,D,E) sans succès.

    Quelqu'un aurait-il une idée de ce que je pourrais utiliser afin que le scale négatif en Z soit prix en compte par le mode de sélection ?

  2. #2
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Tu ne fais aucun draw des objets à tester pour le picking ? et tu as deux appel à glRenderMode(GL_SELECT); ?

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Points : 90
    Points
    90
    Par défaut
    Tu ne fais aucun draw des objets à tester pour le picking ? et tu as deux appel à glRenderMode(GL_SELECT); ?
    Si, je le fais dans ma fonction drawWithNames().


    Mais c'est bon, il fallait bien placé le glScalef (1., 1., -1.) quelque part. Je l'ai mis juste après la projection.

    Désolé de vous avoir fait perdre du temps.

Discussions similaires

  1. Problème rotate3D sur axes GUI
    Par kulnae dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 24/07/2012, 13h13
  2. Réponses: 0
    Dernier message: 16/06/2011, 11h49
  3. [JpGraph] Problème d'affichage sur les axes
    Par Gwen_59 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 21/04/2011, 09h54
  4. Problème d'échelle sur un axe
    Par GDMINFO dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 8
    Dernier message: 14/01/2011, 14h05
  5. [2.3.1] Problème d'affichage sur les axes
    Par peuplier dans le forum BIRT
    Réponses: 2
    Dernier message: 03/02/2009, 16h53

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