CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[OpenGL] glRotatef() et glLoadIdentity()

gollumkawder
gollumkawder
Niveau 10
31 août 2004 à 15:40:42

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 :d)

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

LGV
LGV
Niveau 28
31 août 2004 à 19:22:44

ben si tu ne restaures pas la matrice, tu la laisses en l´état ; en l´occurence elle contient déjà une transformation : les opérations que tu effectues dessues se composent au sens mathématiques pour donner une matrice différente.
Ce résultat peut etre voulé, c´est le cas lorsqu´on gère un objet structuré, tel qu´un bras : en bougeant l´épaule, tu modifies tout le bras, en ne bougeant que le coude, tu ne modifies que l´avant bras.. Les transformations se " propagent", en qq sortes, aux éléments " en dessous" ( dans l´arborescence de la scène)

Je ne sais pas si ça répond à ta question convenablement...

gollumkawder
gollumkawder
Niveau 10
31 août 2004 à 20:55:42

hééé c´est po con le truc du bras, mais bon, je pense pas faire tellement de la 3D, jvé pas modéliser des bras en carton pâte non plus

Merci LGV :ok:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment