Bonjour,
ma question va peut-être parraître très bête. Je suis actuellement en train de créer un système solaire sous opengl. Je ne suis pas expert en la matière... comme vous allez pouvoir le constater...
J'ai créé des planètes, réussi à bouger ma caméra dans cet univers (pour le moment fixe) et j'aimerai donc que mes planètes tounent autour du soleil. Mais je ne sais pas comment faire pour qu'elles tournent à un rythme différent...
J'imagine qu'il faut que j'update ma scène tous les (mettons) 0.1 sec.
Ici je fais tourner mon univers... mais entier (planètes + soleil au même rythme) :
J'update mon theta dans une boucle infini dans une autre partie de mon programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 int drawGLScene(float theta) // Draw the scene; { // theta is amount to rotate -> général (pour toutes mes planètes) glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen //ma camera camera->look(); //la rotation glRotatef (theta, 0.0f, 1.0f, 0.0f); glColor3f(0.0f, 1.0f, 0.0f); sg->renderScene(0.0f); GetFramesPerSecond(); return TRUE; }
Mais si je comprends bien, "glRotatef (theta, 0.0f, 1.0f, 0.0f);" déplace tout mon univers et pas seulement une planete. Comment puis-je faire un "scope" sur mes planètes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 else { drawGLScene(theta); SwapBuffers(hDC); theta -= 1.0f; Sleep (10); }
Je ne sais pas si j'ai été très clair... J'espère que vous pourrez m'aidez... Je reste à votre disposition pour toute questions !
Merci d'avance en m'excusant de vous dérangez.
Kimy
Partager