Je dois faire fonctionner un programme OpenGL avec deux fenêtres d'affichage. Dans l'une d'elles, je dois avoir le modèle d'un hélicoptère avec une caméra fonctionnelle qui tourne autour de lui dans tous les sens. Avant de décider de diviser les fenêtres d'affichage, j'ai fait fonctionner la caméra sur le modèle, car c'était la priorité absolue. L'autre fenêtre est censée afficher le compteur d'images par seconde, mais pour une raison quelconque, je ne peux voir le texte que sous certains angles.
Mon code est le suivant :
//sets up the viewports
void setView(int option)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
switch (option)
{
case 1:
glViewport(0,height-150,width,150);
break;
case 2:
glViewport(0,0,width,height-150);
break;
}
if(persp)
gluPerspective(fovy, (GLfloat) width /(GLfloat) height , near, far);
else
glOrtho(left,right,bottom,top,-10,10);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
myCam.updateLook();
}
void writeBitmapString(void *font, char *string)
{
char *c;
for (c = string; *c != '\0'; c++) glutBitmapCharacter(font, *c);
}
//main draw function
void display(void)
{
//Text portion of the window
setView(1);
glColor3f(1.0, 0.0, 0.0);
glRasterPos3f(0, 0, 0.0);
writeBitmapString((void*)font, "Test text");
glutSwapBuffers();
//Viewport for heli
setView(2);
glEnable(GL_DEPTH_TEST);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
//....The rest is just the modelling stuff
glPopMatrix(); // final pop clause
glFlush();
glutSwapBuffers();
Toute aide serait grandement appréciée.