begin process at 2010 02 10 12:56:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

OpenGL

 > 

Application 3D et performance OpenGL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Application 3D et performance OpenGL

dimanche 27 mai 2007 à 02:12:42 | Application 3D et performance OpenGL

bathof

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.




dimanche 27 mai 2007 à 02:21:18 | Re : Application 3D et performance OpenGL

luhtor

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

Tu obtiendrais des perfs de fou avec 0% cpu.
dimanche 27 mai 2007 à 15:24:08 | Re : Application 3D et performance OpenGL

bathof

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() ».
dimanche 27 mai 2007 à 16:27:39 | Re : Application 3D et performance OpenGL

bathof

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.
dimanche 27 mai 2007 à 17:32:58 | Re : Application 3D et performance OpenGL

bathof

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.

dimanche 27 mai 2007 à 18:38:25 | Re : Application 3D et performance OpenGL

bathof

J'ai trouvé le problème, lol, c'etait juste un problème de version des DLLs d'OpenGL.
dimanche 27 mai 2007 à 21:32:33 | Re : Application 3D et performance OpenGL

luhtor

De toute facon, j'aurais pas pu t'aider, j'ai toujours utiliser que Glut.


Cette discussion est classée dans : gl, color, glvertex2f, viewport, fixpos


Répondre à ce message

Sujets en rapport avec ce message

opengl : lumière, fog pose problème quand picking [ par kortin ] Bonjour,j'aimerais ajouté le fog et la lumière dynamique dans mon projet openGL.Tout fonctionne bien, mais lors de la sélection d'un objet(picking), l Picking opengl [ par gillescpp ] Bonjour,Voila un ceratint temps que j'essaie de maitriser le picking et jusqu'a présent, c'est sans success.Le code suivant comporte deux fonctions : glReadPixels et gluUnProject [ par Seboo ] Bonjours,J ai un probleme pour utiliser ces deux fonctions.Enfaite j ai un cube et avec un mouvement sur ce cube j'essaye de connaitre le vecteur sens pb de recuperation de ProjectionMatrix & ModelViewMatrix [ par serialtom ] bonjour a tous, je suis debutant en openGL je suis en train de me construire un viewer 3D j'ai fait ca dans une application basée sur MFC. Je rencon effacement viewport [ par vladisback ] je réalise actuellement un logiciel de modelisation 3d, j'ai donc plusieurs viewports mais lorsque j'efface avec glClear(GL_COLOR_BUFFER_BIT | GL_DEPT Sprite Transparent OpenGL [ par shorzy ] Salut à Tous Je voudrais Dessiner un Sprite (Texturer Donc) La Texture est entierement Noir sauf une Forme en Blanc. Je veux que seule la Forme reso Lumiere [ par Ensias ] Salut tous le monde, je viens de commencer Opengl et j'ai ecris un petit programme qui dessine un cube qui est en rotation autour de lui meme et qui e OpenGL map blending [ par dletozeun ] bonjour, Dans mon projet je genere un terrain sur lequel j'applique une texture (roche par exemple) avec opengl. Maintenant je voudrais gerer le mult Glut et Open GL [ par Fireflect ] Bonsoir ou bonjours ;) Vous allez rire mais je suis encore un *** de plus qui va croire qu'il est cappable de faire un moteur 3D de qualité enfin j'a Je ne comprends plus rien aux lumieres [ par Ensias ] Salut tous le monde, je viens de debuter Opengl et je gallere avec les lumieres.J'ai cree une petite scene qui comporte 2 cubes, l'un des deux est fix


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,834 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales