Bonjour,
Je suis en train de développer une application 3D et j'ai constaté que les
performances 3D n'était pas excellentes, j'ai l'impression que OpenGL
utilise uniquement le CPU pour le calcule du rendu 3D, cela est-il possible ?
Par exemple, si j'affiche un rectangle de la manière suivante avec de l'alpha
sur ma scène 3D, mon frame rate diminue très fortement, cela est-il normal ?
//-----------------------------------------------------------------------------
// Faire passer OpenGL en 2D pour afficher le rectangle
// de sélection
//
// Désactivation du cull face
glDisable(GL_CULL_FACE);
// Sauver la matrice GL_MODELVIEM courante && Effacer la matrice
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
glLoadIdentity();
// Sauver la matrice GL_PROJECTION courante && Effacer la matrice
glMatrixMode( GL_PROJECTION );
glPushMatrix();
glLoadIdentity();
// Lecture du viewport
GLint viewport[4];
glGetIntegerv( GL_VIEWPORT, viewport );
// On initialise la projection de façon a ce que les coordonnées
// correspondent au pixel
gluOrtho2D( 0.0, viewport[2], 0.0, viewport[3] );
//-----------------------------------------------------------------------------
// Dessiner le rectangle de selection
//
glBegin(GL_QUADS);
glColor4f ( color.r, color.g, color.b, 0.5f );
glVertex2f( fixPos.x, viewport[3] - fixPos.y );
glVertex2f( mousePos.x, viewport[3] - fixPos.y );
glColor4f ( color.r, color.g, color.b, 0.5f );
glVertex2f( mousePos.x, viewport[3] - mousePos.y );
glVertex2f( fixPos.x, viewport[3] - mousePos.y );
glEnd();
// Afficher les lignes autours du rectangle
glBegin(GL_LINE_LOOP);
glColor4f ( color.r, color.g, color.b, 0.9f );
glBegin(GL_LINE_LOOP);
glVertex2f( fixPos.x, viewport[3] - fixPos.y );
glVertex2f( mousePos.x, viewport[3] - fixPos.y );
glVertex2f( mousePos.x, viewport[3] - mousePos.y );
glVertex2f( fixPos.x, viewport[3] - mousePos.y );
glEnd();
//-----------------------------------------------------------------------------
// Revenir aux matrices précedentes
//
// Retablire l'encienne matrice de projection
glPopMatrix();
// Retablire la matrice MODELVIEW
glMatrixMode( GL_MODELVIEW );
glPopMatrix();
glEnable(GL_CULL_FACE);
Merci d'avance pour vos réponses.