Objet coller à la caméra

Résolu
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011 - 31 août 2006 à 00:46
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 3 sept. 2006 à 09:26
Salut tout le monde,

Je suis un bon didacticiel sur OpenGL, et j'arrive au niveau des
projections. L'exercice final propose de créer une scène composée d'un
cube déformé (pour la pièce), et un autre cube plus petit, histoire de
placer un objet dans cette scène.

Les mouvements de la caméra sont plutot réussi, ça parait très
réaliste. Seulement dès que le petit cube deviens visible, il se met à
bouger en même temps que la caméra, il y est comme attaché ; Alors que
le cube déformé ne bouge pas lui.

Voici le contenu de la fonction d'affichage :
void affichage(void)

{

    afficherEtat();

    glClear(GL_COLOR_BUFFER_BIT);

    glLoadIdentity();

    /* Positionnement de la caméra */

    glRotatef(cam_ry,0,1,0);

    glTranslatef(-cam_x,0,-cam_z);

    glPushMatrix();


    glTranslatef(0.0,1.5,0.0);

    glScalef(1.0,0.25,1.0);

    glColor3f(1.0,0.0,0.0);

    glutWireCube(20);


    glPopMatrix();

    glPushMatrix();

    glTranslatef(5,0,-5);

    glColor3f(1.0,1.0,1.0);

    glutWireCube(2);


    glFlush();

    glutSwapBuffers();

}


Si quelqu'un pouvait m'aider, ça serait cool. Si toute fois il fallait
le code entier (environ 130 lignes), dites le moi et je trouverai un
wall pour le mettre.

Merci de votre patience.

3 réponses

spiky31 Messages postés 106 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 11 février 2008
31 août 2006 à 09:54
Salut

Il me semble qu'il manque un appel a "glPopMatrix();" apres "glutWireCube(2);". Si ca corrige pas le probleme il faudra que tu post le code en entier

voila a+
3
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
2 sept. 2006 à 14:06
Je ne retrouve plus mon code lol. Je vais le retrouver et essayer, et je te redis après si ça fonctionne.
Mais la chose étrange, c'est que dans le code exemple sur lequel je me base, n'a pas de glPopMatrix() à la fin, et ça fonctionne très bien...
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 sept. 2006 à 09:26
Non ca peut pas fonctionner car si tu fais un push de trop, la pile de
matrice va exploser et je suppose crasher au bout de 32 frames.
0
Rejoignez-nous