Bonjour,
Je galère sur mon programme en OpenGL / C++ car j'essaie de faire tourner ma caméra (en appuyant sur deux touches) de sorte à voir le rendu en 3D de ma scène. Le problème c'est que lorsque j'appuie sur les touches et que cette rotation a lieu, ma scène disparaît par morceaux puis réapparaît par d'autres (certains bouts étant cachés par une sorte de "rideau noir".) Je pense que celà proviens de la projection perspective que j'utilise mais je n'en suis pas si sûr (d'autant plus que même en modifiant les paramètres ça n'y fait rien...)
Voici un extrait du main :
Et le début de ma fonction d'affichage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 glClearColor(0.0,0.0,0.0,0.0); glMatrixMode(GL_PROJECTION); gluPerspective(45,1,-1,500); glEnable(GL_TEXTURE_2D); glEnable(GL_DEPTH_TEST);
angleX, angleY et angleZ sont modifiés lorsque j'appuie sur les touches ce qui introduit une rotation (spéciale certes mais c'est juste histoire de voir le volume de ma scène.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void display(){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glShadeModel(GL_SMOOTH); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluLookAt(0,0,-1,0,0,0,0,1,0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glRotatef(angleX,1,0,0); glRotatef(angleY,0,1,0); glRotatef(angleZ,0,0,1);
Je pense que le souci proviens d'un de ces boûts de code... Merci d'avance pour votre aide !
Alex
Partager