bathof
Messages postés28Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention31 janvier 2009
-
27 mai 2007 à 02:12
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
27 mai 2007 à 21:32
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);
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 27 mai 2007 à 02:21
Les fonctions openGL glVertex* vont sans doute disparaitre, tellement les performances sont catastrophiques.
Renseigne toi sur les vbos (Vertex Buffer Object):
http://www.g-truc.net/article/vbo-fr.pdf
bathof
Messages postés28Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention31 janvier 2009 27 mai 2007 à 15:24
Salut,
Merci pour ta réponse, mais j'ai un problème que je n'arrive pas à résoudre.
J'ai installer la librairie "glew" pour pouvoir utiliser les "VBO", mais quand
j'appelle la fonction "glGenBuffers(GLEW_BUFFER_SIZE, glewBufferName);" mon
programme plante (il génère des erreurs).
Avant d'appeler la fonction « glGenBuffers » j'initialise correctement "glew" avec la fonction « glewInit() ».
bathof
Messages postés28Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention31 janvier 2009 27 mai 2007 à 16:27
Si je crée un fenetre OpenGL avec SDL je n'ai aucun problème avec glGenBuffers,
par contre si je crée une fenêtre OpenGL avec l'API windows je rencontre le problème.
Je dois faire faux dans une initalisation d'OpenGL mais je ne vois pas quoi.
bathof
Messages postés28Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention31 janvier 2009 27 mai 2007 à 17:32
J'ai trouvé quelques chose qui pourrait aider. Après l'initalisation avec "glewInit();"
si je test "GLEW_ARB_vertex_buffer_object", il est égale a NULL.
Pourtant si j'initaliser avec SDL, "GLEW_ARB_vertex_buffer_object" n'est pas
égale a NULL.
Vous n’avez pas trouvé la réponse que vous recherchez ?