gillescpp
Messages postés33Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention22 octobre 2007
-
21 avril 2006 à 17:23
gillescpp
Messages postés33Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention22 octobre 2007
-
24 avril 2006 à 16:25
Bonjour,
Voila un ceratint temps que j'essaie de maitriser le picking et jusqu'a présent, c'est sans success.
Le code suivant comporte deux fonctions : l'une affiche un simple triangle et l'autre l'affiche aussi mais cettte fois-ci pour le picking.
C'est de cette dernière qu'il sagit en fait. J'ai mis en commentaire l'appel à glRenderMode pour rester en RENDER et j'ai ajouté un appel à l'affichage SDL_GL_SwapBuffers() pour qu'il m'affiche le résultat.
Le problème semble venir de gluPickMatrix(). En effet, malgré le fait que les transformations de matrices (hormis cette dernière) soient identiques, le résultat n'est pas du tout celui attendu. Le triangle apparait beaucoup plus grand et à une position qui parait être aléatoire (ce ne doit pas être le cas). Lorsque j'enleve l'appel à gluPickMatrix(), le triangle s'affiche bien à la place voulue.
Par exemple, pk tu dis ca : "En effet, malgré le fait que les transformations de matrices (hormis
cette dernière) soient identiques, le résultat n'est pas du tout celui
attendu. Le triangle apparait beaucoup plus grand et à une position qui
parait être aléatoire (ce ne doit pas être le cas)." car en mode SELEC, aucun n'affichage n'est fait.
Et tu utilises pas correctement la fonction:
gluPickMatrix(x,viewport[3] - y, 50.0, 50.0, viewport);
Les paramètres 50 sont bien trop grand. Ca serait plutot 5 ou au max 10.
Et ca:
//(void) glRenderMode(GL_SELECT);
C'est SURTOUT PAS EN COMMENTAIRE.
gillescpp
Messages postés33Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention22 octobre 2007 24 avril 2006 à 14:14
J'ai mis le mode GL_SELECT en commentaires et un appel à Swapbuffers pour m'afficher ce que dessine opengl et que l'on est censé pas voir. C'est uniquement qu'a des fins de déboguage. Quant aux 50, c'était pour m'assurer de viser juste. Pourtant, en corrigeant comme tu me le conseilles, ca à l'air de fonctionner correctement. Voici le code corrigé :