Problème matrices glLoadMatrix

Bonjour à tous,

Nous avons un projet à faire et nous bloquons sur les matrices.
Nous avons besoin de dessiner un parallélépipède dans l’espace en ayant sa taille, trois valeur de translation selon x, y et z, et une valeur de rotation suivant y. Nous devons utiliser des matrices de translation et de rotation puis la fonction glLoadMatrix mais nous ne pouvons pas utiliser glRotatef ni glTranslatef.
Nous sommes bloqué pour l’écriture des matrices ainsi que pour leur multiplication (translation et rotation).
Nous sommes débutant en openGL et ne comprenons pas très bien les systèmes de matrices et glDrawElement.

La date de fin du projet est lundi, nous avons donc vraiment besoin de votre aide.
Merci d’avance.
Bonne soirée.

Pour demain donc ?

Peut-être qu’on te demande juste de faire une multiplication de Matrix afin de faire la translation et la rotation.

Coucou,

Merci pour cette réponse rapide.
En fait, ce projet on l’a eu y’a quelque temps mais on a énormément buché dessus pour essayer de comprendre mais rien a faire.
En fait c’est le fonctionnement même des matrices où j’ai du mal.
Dans le projet on nous donne la taille de l’objet à dessiner, les translations a lui apporter et une rotation.
Je pense qu’il faut faire deux matrices (translation et rotation), ensuite les multiplier et utiliser glLoadMatrix pour se placer dans l’espace et dessiner notre objet grâce à la fonction glDrawElements (utilisant des tableaux que j’ai déjà rempli).
Mais est-ce bien ça où suis-je totalement à côté de la plaque ?

Merci beaucoup pour ton aide !

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity( );

//Tu place ta caméra .... 
//ensuite

glPushMatrix();
glTranslated(x,y,z);
glRotated(90,0,1,0); // A vérifier que c'est sur le bon axe.
glPopMatrix();

Toutes les multiplications de matrices sont faites automatiquement …

une petite astuce pour changer la taille de ton objet … tu changes l’échelle
glScalef(echelle,echelle,echelle);

Oui sauf que leur exo c’est de ne pas faire de glRotated :slight_smile: