Bonjour,
Je suis novice en programation et j'ai un problème que je n'arrive pas à résoudre avec opengl si quelqu'un pouvait m'aider ça serai sympa ^^
Bon, j'ai bien compris les tuto sur le picking opengl et il n'y a pas de problème de ce coté la, en fait mon objectif est de :
partie 1 :
sélectionner un objet (je sais comment faire)
partie 2 :
pouvoir déplacer cet objet avec la souris (aie)
J'ai réussi à récupérer la position de la souris en coordonnées 2D (c'est a dire dans le repère 600x800) il me faut maintenant transformer ces coordonnées en vecteur opengl pour pouvoir faire bouger un cube avec la souris par example...
j'ai trouvé ce code :
Mon problème est que ce code donne des résultat érronés si j'utilise gluPerspective .... donc ma question est comment définir la position de la souris dans l'espace 3D d'opengl même si je fait une rotation, une translation, ou que j'utilise gluPerspective.
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 loat GetOGLPos(int x,int y,float*Vecteur) { GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[16]; GLfloat winX, winY, winZ; GLdouble posX, posY, posZ; glGetDoublev( GL_MODELVIEW_MATRIX, modelview ); glGetDoublev( GL_PROJECTION_MATRIX, projection ); glGetIntegerv( GL_VIEWPORT, viewport ); winX = (float)x; winY = (float)viewport[3] -(float)y; glReadPixels( x, int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ ); gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ); return Vecteur[0]=posX,Vecteur[1]=posY,Vecteur[2]=posZ; }
MProg(plz help )
Partager