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 :

Chute de FPS dans des conditions bien précises


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut Chute de FPS dans des conditions bien précises
    Bonjour,

    Je suis en ce moment sur mon jeux de labyrinthe en 3d,
    à ce qui concerne l'utilisation de OpenGL natif,
    est - ce normal qu'a certain endroit de mon jeux (ou est situé le pion), la carte graphique mets 2 fois plus temps pour le rendu 3d ?
    Dans une fenêtre Windows j'affiche le nombre d'image par secondes (30 fps) , et je constate qu'a certains endroits et selon l'angle de rotation (du pion) , eh bien ce nombre est divisé par 2 (17 fps).

    Pour information : Quand le pion ne bouge pas et qu'il fait que tourner , mon moteur 3d ne fait qu’appeler les listes (glCallList).
    Je n'utilise pas la fonction glutlookat cependant j'utilise la fonction glrotation et gltranslate.

    Configuration graphique : NVIDIA , une carte graphique âgé de plus de 5 ans.
    Mais je tourne sur VirtualBOX , et OpenGL fonctionne très bien sur VirtualBOX


    merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 576
    Points : 1 528
    Points
    1 528
    Par défaut
    Salut,

    Ben, si selon l'angle du vue il y a 2 fois plus de choses à afficher, la carte met 2x plus de temps pour les afficher...

    Après, je ne suis pas devin, je ne connais pas ton jeu alors je peux difficilement être plus précis. Peux-tu au moins envoyer des screen de la scène en question ?
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  3. #3
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    363
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 363
    Points : 353
    Points
    353
    Par défaut
    Essaie aussi d'afficher le nombre de triangles que tu envoie à OpenGL.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par pyros Voir le message
    Salut,

    Ben, si selon l'angle du vue il y a 2 fois plus de choses à afficher, la carte met 2x plus de temps pour les afficher...

    Après, je ne suis pas devin, je ne connais pas ton jeu alors je peux difficilement être plus précis. Peux-tu au moins envoyer des screen de la scène en question ?
    Voici la capture ,
    l'objet "1" tourant constituais de deuxvertex pour former un rectangle (plat , je dis bien plat) avec transparence de textture (ce qui est hors du cercle , le alpha est à 0)
    Images attachées Images attachées  

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Combien de vertex contient la sphère ? (ou de points)
    Utilisez vous du frustrum culling ?

    Mais je tourne sur VirtualBOX , et OpenGL fonctionne très bien sur VirtualBOX
    Je me permets d'émettre des doutes là dessus. Disons qu'en terme de performances je n'y crois pas trop.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Combien de vertex contient la sphère ? (ou de points)
    Utilisez vous du frustrum culling ?


    Je me permets d'émettre des doutes là dessus. Disons qu'en terme de performances je n'y crois pas trop.
    J'en dois en gérer gere au moins 32 spheres,
    je veux un peu imiter ce que font les jeux commercialisés pour attirer plus
    d'utilisateur.

    D'aprés mes diagnostiques ca vient de ma carte graphique NVIDIA qui possede 512 Mb de mémoire , je lui passe souvent des textures qui ont une taille de 512x512 , j'ai essayer de les réduire à 256x256 et là le temps fps est plus haut (moins de lenteur).

    Je l'ai tester sur la machine Host (hors de ma virtualbox), pareille ,
    je l'ai tester sur une autre machine plus performant, ca va à peu prés mieux.

    voilà

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Si vous remplissez 512Mo de mémoire vidéo, c'est que vous charger vos textures des milliers de fois
    Si je reformule, c'est que vous gérez très mal vos objets OpenGL et que vous avez une fuite de mémoire.

    Pour le vérifier, vous pouvez utiliser GPU Shark
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 576
    Points : 1 528
    Points
    1 528
    Par défaut
    Si vous remplissez 512Mo de mémoire vidéo, c'est que vous charger vos textures des milliers de fois
    +1.
    32 texture RGBA8 de 512*512 ça donne à peine 35Mo. D'après le le screenshot, ce genre de rendu ne devrait utiliser que quelques Mo à tous casser...
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Si vous remplissez 512Mo de mémoire vidéo, c'est que vous charger vos textures des milliers de fois
    Si je reformule, c'est que vous gérez très mal vos objets OpenGL et que vous avez une fuite de mémoire.

    Pour le vérifier, vous pouvez utiliser GPU Shark
    Franchement merci pour le lien,
    mais je ne sais pas si cet utilitaire marche sur VirtualBOX, car je developpe dans VirtualBOX.

    Pour les textures non , elles sont chargé qu'une seule fois.

    Cependant je testerai cet apres-midi l'utilitaire.

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    L'utilitaire fonctionne sous Windows, donc il devrait fonctionner sous Virtual Box.
    Par contre, il faut des extensions bien précises pour avoir un aperçu de l'utilisation de la mémoire Vidéo, extension qui nous vient de NVIDIA, donc peut être que le driver qu'utilise la Virtual Box ne la gère pas
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Pour les chargement multiple de texture identique , d'aprés mes log
    mais je les charges qu'une seule fois.

    J'ai au moins une douzaine de textures de 512x512 qui sont chargées et elles sont bien différentes.
    Idem pour les vertex (les lists OpenGL).

    J'ai oublier de signifier , que j'utilise des lists (glCallLists , gl NewList) et aussi quand je réduis ma modale (fenêtre) Opengl , là le FPS augmente.
    Est ce que ma carte graphique est assez puissante ??

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Pour ce que vous semblez faire, oui, les cartes graphiques sont assez puissantes

    Pour avoir plus de détails sur ce que vous faites au niveau OpenGL, je vous conseille gDEBugger, notamment avec cette outil, je vois si je charge des copies de texture (ou autre). Et vous pouvez aussi utiliser pour faire du profiling.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Pour ce que vous semblez faire, oui, les cartes graphiques sont assez puissantes

    Pour avoir plus de détails sur ce que vous faites au niveau OpenGL, je vous conseille gDEBugger, notamment avec cette outil, je vois si je charge des copies de texture (ou autre). Et vous pouvez aussi utiliser pour faire du profiling.
    j'ai tester GeDEbugger , ca marche pas , en tous cas dans VirtualBOX.
    Je vais le retester Lundi et il me semble qu'il ma flinguer opengl , j'ai du le desinstaller et redemarrer ma machine (problème résolu), je ne sais pas si il s'agissait de gsldevil,bref.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Finalement GeDebugger semble fonctionner (et sur VirtualBox),
    mais nécéssite une connexion internet pour le téléchargement de licence.

    La lenteurs viendrait de ma carte graphique, il y aurait un nombre de primitives un peu trop importantes avec des texture de 512x512 plaqué dessus.
    Dans mon jeux j'affiche tout les vertex d'un espace de 64x64 points ou est situé le pion, et c'est la carte graphique qui gère la profondeur.


    J'ai quelques soucis :
    GeDebugger m'affiche l'erreur GL_INVALID_ENUM sur un appel de glCallList ,
    et pourtant le numéro de la liste est bien referencer dans la table des listes de vertex.
    et je ne comprend pas pourquoi.

  15. #15
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    GeDebugger m'affiche l'erreur GL_INVALID_ENUM sur un appel de glCallList
    Il faut savoir que m'erreur peut être déclenché plus tot et vue que lors de cet appel. C'est pour cela, qu'il faut faire un glGetError() pour chaque appel. Bon, avec gDEBugger je ne pense pas que cela soit un problème.

    Par contre, il se peut aussi que le pilote soit un peu boguer (surtout si c'est un pilote spécial VirtualBox, sinon, non ce n'est pas le pilote).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Enlever des NA dans une colonne bien précise
    Par mydoudouitsk dans le forum R
    Réponses: 6
    Dernier message: 29/04/2015, 17h29
  2. Interagir dans une fenêtre bien précise
    Par soliman dans le forum Général Python
    Réponses: 4
    Dernier message: 04/03/2009, 21h45
  3. probleme avec des lettres dans des conditions
    Par nefas dans le forum C++
    Réponses: 7
    Dernier message: 01/08/2008, 14h25
  4. Problème dans des conditions
    Par Tutotictac dans le forum Langage
    Réponses: 4
    Dernier message: 29/07/2006, 11h27
  5. Div déplaçable dans des endroits bien définis
    Par creale10 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/02/2006, 09h49

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