IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Evaluation performances OpenGL


Sujet :

OpenGL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Par défaut Evaluation performances OpenGL
    Bonjour,

    Si on considère un PC "moyen" (pentium 4, carte graphique moyen de gamme), combien de GL_TRIANGLE peut-on raisonnablement afficher pour une animation de 10/15 images par secondes ?

    Je cherche juste à avoir un ordre de grandeur : 50.000, 100.000, 1.000.000, plus ???

    Merci.

  2. #2
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    c'est très mais alors TRES dépendant de la carte graphique, de la fréquence du CPU et de la méthode utilisée

    a titre d'exemple, un athlon 64 2GHz avec une geforce 6600GT 128Mo doit pouvoir afficher dans les 30 millions de polygones bruts non texturés en utilisant des VBO

    je connaissait une appli bien lourde pour tester les vbo, si je la retrouve je transmet
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Par défaut
    Merci pour ta réponse shenron666.

    Donc 100.000 ou 200.000 triangles ne lui font pas peur avec des glVertex3d.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 109
    Par défaut
    glVertex3d.
    Si justement !!

    quand tu as beaucoup de vertices à afficher, glVertex3d est la méthode la plus lente !!
    Essaies de voir avec des vbo, ça change la vie

  5. #5
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    contrairement aux vbo, les glvertex sollicitent énormément le cpu et la bande passante vidéo
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Par défaut
    Merci pour vos réponses Kaktus et shenron666.

    Je vais me pencher sur les VBO.
    (c'est peut être pour cela que mon cpu est à 100% lorsque j'affiche un cube !)

  7. #7
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    il peut aussi y avoir d'autres raisons telles que la non limitation du nombre d'images par secondes ou le fait que tu ne laisse pas la main à l'OS de temps à autre
    même avec des glVertex
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    il peut aussi y avoir d'autres raisons telles que la non limitation du nombre d'images par secondes ou le fait que tu ne laisse pas la main à l'OS de temps à autre
    même avec des glVertex
    Comment fait-on pour limiter le nombre d'image par seconde ? (calcul manuel ou fonction OpenGL ???)

    Pour laisser la main à l'OS, faut-il que j'insère quelques Sleep(1) dans mon code ??

    Merci.

  9. #9
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    pour limiter le nombre d'images par secondes, on mesure le temps pris par le rendu et on ne lance le rendu d'une nouvelle image que si on ne dépasse pas la limite fixée

    un Sleep suffit déjà à passer de 100% à 0% sur un affichage de cube
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    - calcul du rendu
    - traitement des événements
    - swap des buffers
    - sleep(1)
    un sleep d'une milliseconde est suffisant, en réalité ça demandera un sleep le plus court possible mais qui sera de plus d'une milliseconde

    à tester en fonction de l'architecture de ton programme là où c'est le moins pénalisant
    et en gardant en tête que les appels à opengl sont désynchronisés, par exemple si tu envoies de la géométrie au driver, pendant que le transfert se fera ton cpu sera disponible pour autre chose
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  10. #10
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    et en gardant en tête que les appels à opengl sont désynchronisés, par exemple si tu envoies de la géométrie au driver, pendant que le transfert se fera ton cpu sera disponible pour autre chose
    Euh, ça dépend pas du fait que les commandes OpenGL soient bufferisées ou non ? (cf glFlush()).

  11. #11
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    à ma connaissance, les commandes opengl sont bufferisées, elle ne peuvent pas ne pas l'être, ce n'est pas un choix possible

    glFlush est autant que possible à éviter car c'est une fonction qui ne retourne que lorsque le buffer est vide, elle existe pour "forcer" les commandes opengl à être exécutées
    en fait elle ne force rien, elle ne fait qu'attendre que le buffer soit vide

    le problème dans ce cas, c'est que le cpu se tourne les pouces, on perd donc tout l'intérêt de la désynchronisation cpu / gpu
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

Discussions similaires

  1. Evaluer des performances avec la toolbox CyNC
    Par chouki dans le forum Simulink
    Réponses: 0
    Dernier message: 14/03/2009, 00h01
  2. Mauvaise performance d'opengl sur vista
    Par clemsye dans le forum Installation
    Réponses: 5
    Dernier message: 01/09/2008, 15h15
  3. Réponses: 4
    Dernier message: 21/02/2008, 15h18
  4. Performances OpenGL, Vertex Array, (VBO ?)
    Par Burckel dans le forum OpenGL
    Réponses: 6
    Dernier message: 07/03/2007, 10h40
  5. opengl : performance(s)
    Par CaptainChoc dans le forum OpenGL
    Réponses: 18
    Dernier message: 09/07/2006, 23h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo