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 :

Picking et rotation


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut Picking et rotation
    Voila j'ai implémenté le picking OpenGl et ça marche tant que je n'effectu pas de rotation de ma caméra.??

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    	x=e->x();
    				y=e->y();
    				GLuint selectBuffer[BUFSIZE];
    				GLint hits;
    				GLint viewport[4];
     
    			//************ PICKING
    				glGetIntegerv(GL_VIEWPORT,viewport);
     
    				glSelectBuffer(BUFSIZE,selectBuffer);
    				(void) glRenderMode(GL_SELECT);
     
    				glInitNames();
    				glPushName(0);
     
    				//récupération de la matrice de projection active
    				GLfloat v_Matrix_Projection[16];
    				glGetFloatv(GL_PROJECTION_MATRIX,v_Matrix_Projection);
     
    				glMatrixMode(GL_PROJECTION);
     
    				glPushMatrix();
     
    				glLoadIdentity();
     
    				// crée une région de 5x5 pixels proche de l'emplacement du curseur
    				gluPickMatrix((GLfloat) x, (GLfloat)(viewport[3]-y),20.f,20.f,viewport);
    				glMultMatrixf(v_Matrix_Projection);
     
    				Draw_for_select();
    			//	ground->Affiche_Select();
     
    				glFlush();
    				glPopMatrix();
     
    				glMatrixMode(GL_MODELVIEW);
    				glLoadIdentity();
     
    				hits=glRenderMode(GL_RENDER);
    				processHits(hits,selectBuffer);
    			//Fin du Picking, _picking contien l'indice de l'element selectionné
     
     
     
     
    void Camera_Persp::SetProjection(int w,int h)
    {
    	glMatrixMode(GL_PROJECTION);
    	glLoadIdentity();
    	gluPerspective(60.0,(GLfloat)w/(GLfloat)h,0.01,1000.0);
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity();
    }

    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Merci de penser à

    Jc

  3. #3
    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 Re: Picking et rotation
    Citation Envoyé par optalix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (...)	
        glLoadIdentity();
    (...)
    bah oui, forcement si tu remet la matrice à l'identitée sans repositionner la camera ca marche moins bien
    * 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

Discussions similaires

  1. Problème de rotation
    Par Francky033 dans le forum DirectX
    Réponses: 1
    Dernier message: 17/07/2003, 16h38
  2. Rotation de Bitmap -> ScanLine
    Par jujuesteban dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2003, 15h11
  3. Rotation d'un bouton ?
    Par ken_survivant dans le forum Composants
    Réponses: 3
    Dernier message: 01/04/2003, 18h16
  4. matrice et rotation
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/12/2002, 17h59
  5. algo : rotation d'objet 3d
    Par numeror dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/08/2002, 22h58

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