Hi guys, je me pozais une question là ( je post içi parceque sur #programmation c´est mort)
En faisant un tuto de NeHe ( http://nehe.gamedev.net )
Il disait qu´en omettant de restaurer la matrice avec glLoadIdentity() ( j´utilisais alors ModelView())
Ca pouvait foutre le bordel dans l´affichage, j´ai donc passé glLoadIdentity en commentaire pour essayer de voir, et en effet ça fait n´importe nawak, mais....POURQUOI ?
voici une partie du code ( ce dont il y a besoin):
int DrawGLScene(GLvoid)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(-1.5f, 0.0f, -6.0f);
glRotatef(rtri, 0.0f, 1.0f, 0.0f);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f( 0.0f, 1.0f, 0.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glColor3f( 0.0f, 0.0f, 1.0f);
glVertex3f(1.0f, -1.0f, 0.0f);
glEnd();
/ / glLoadIdentity();
glTranslatef(1.5f, 0.0f, -6.0f);
glRotatef(rquad, 1.0f, 0.0f, 0.0f);
glColor3f(0.5f, 0.5f, 1.0f);
glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glEnd();
rtri += 0.2f;
rquad -= 0.15f;
return TRUE;
}
Ce que j´ai constaté en omettant de restaurer la matrice ModelView c´est ceci
Le triangle effectue correctement sa rotation sur l´axe y, le carré effectue aussi sa rotation sur x mais en meme temps que le triangle tourne le carré tourne autour de lui ! ( Et tourne aussi sur lui meme)
Pourquoi le simple fait de ne pas restaurer la matrice d´origine fait-elle faire " n´importe quoi" ?
Merci de vos éventuelles précisions
--Gollum et la matrice du nawak