[opengl dev cpp] Probleme de repere et de vue

Fermé
Wal - 31 août 2006 à 22:40
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 4 sept. 2006 à 08:38
Bonjour,
je tente d'utiliser un peu opgengl sous dev cpp mais j'ai plusieurs probleme.

Tout d'abord tout s'affiche dans un repère non direct. (on peut résumer en disant que les coordonées en z sont inversées)

Ensuite la fonction gluLookAt() qui prend normalement comme argument le point ou se positionne la caméra puis le point visé par la caméra semble réagir de façon inverse, c'est a dire que le premier argument determine sa direction et le second sa position.

Quelqu'un a deja rencontré ces pbs avec les librairies de dev cpp?
Sinon pourriez vous me conseillez un autre éditeur avec compilateur intégré gratuit afin que je puisse voir si le pb ne vient pas exclusivement de dev cpp?
C'est vraiment rageant d'être bloqué par des détails aussi basiques, aussi je remercie vraiment par avance celui qui pourrait m'apporter une solution à mes problèmes.

++
A voir également:

3 réponses

Rebonjour,

bon j'ai plus ou moins résolu mon problème.
mais je n'ai pas vraiment compris l'explication. j'ai juste remarqué quand changeant:
glRotatef(-angley,1.0,0.0,0.0);
glRotatef(-anglex,0.0,1.0,0.0);

par
glRotatef(angley,1.0,0.0,0.0);
glRotatef(anglex,0.0,1.0,0.0);

le repère devenait direct... anglex et angley sont des floatants mis en variables globales et leur valeur change en fait par action de la souris sur l'image afin de pouvoir faire pivoter ma figure. Donc si quelqu'un a l'explication de ce problème, ça m'interresse. (note: j'ai pensé à un moment qu'une rotation d'un angle -0.0 posait problème mais même en rajoutant
glRotatef(-angley+0.1,1.0,0.0,0.0) ça ne changeait rien)
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
1 sept. 2006 à 08:24
Attention, il faut vérifier si glRotate fait pivoter la camera OU le repère.
selon que c'est l'un ou l'autre, il est logique que ce que tu veux faire soit dans le mauvais sens.
0
Salut,
que ce soit le repere ou la caméra (dans mon cas c le repere) ça ne doit en aucun cas inverser les z ou autre coordonnées. Un repère direct qui pivote et/ou translate dans toutes les directions restera direct.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 sept. 2006 à 08:38
Salut.
J'ai ajouté ce code
            glBegin(GL_LINES);
            glColor3f (1,0,0);   glVertex3f ( 0, 0,0);
            glColor3f (1,0,0);   glVertex3f ( 1, 0,0);
            glEnd();
            glBegin(GL_LINES);
            glColor3f (0,1,0);   glVertex3f ( 0, 0,0);
            glColor3f (0,1,0);   glVertex3f ( 0, 1,0);
            glEnd();
            glBegin(GL_LINES);
            glColor3f (0,0,1);   glVertex3f ( 0, 0,0);
            glColor3f (0,0,1);   glVertex3f ( 0, 0,1);
            glEnd();

et en fesant tourner ce repère, je l'ai bien vu direct (selon regle main droite).
Pour les angles, je persiste : si tu fait tourner la camera d'un angle x par rapport à z par exemple, tu aura le rendu inverse par rapport à si tu fait tourner ton repère du même angle !
0