[opengl dev cpp] Probleme de repere et de vue

Wal -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
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.

++

3 réponses

  1. Wal
     
    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
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
    1. Wal
       
      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
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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