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 :

Display list, textures et optimisations


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut Display list, textures et optimisations
    Bonjour

    Voici mon problème.
    Pour mon application de visualisation de réseau, je passe par une display list. En gros, le dessin des noeuds et des liens se fait par une display list. Pour chaque noeud, j'affiche sa texture qui, SANS SELECTION, est la même pour tous.
    A la sélection, ma display list est modifiée: elle ne contient que les premiers voisins du noeud sélectionné et le noeud sélectionné est hors display list (affiché autremement). La texture change: une texture pour le noeud sélectionné, une autre pour les voisins et les autres noeuds ne sont pas dessinés.
    Malgré cela, mon application est lente dans deux cas:
    1) les performances tombent lorsque le noeud sélectionné a beaucoup de voisins (supérieurs à 10).
    2) Si j'affiche un gros réseau de 500 noeuds, les performances chutent très fort.
    Apparemment, mes mesures montrent que je passe du temps à afficher mes textures (des images PNG de 100px sur 100).
    Comment puis-je optimiser cela ? Dois-je laisser tomber les textures (qui ne sont pas capitales pour l'appli) ?

    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Salut,

    A la sélection, ma display list est modifiée: elle ne contient que les premiers voisins du noeud sélectionné et le noeud sélectionné est hors display list (affiché autremement).
    Tu veux dire que tu recrées une display list quand tu changes de selection?
    Ca peut ralentir pas mal les choses.

    Je ne sais pas exactement comment est ton appli, mais à priori tu ne selectionnes que les noeuds et pas les liens non?
    Tu pourrais par exemple créer une display list pour les liens, qui ne changera jamais, et afficher tes noeuds sans display list (si tu affiches des spheres avec assez peu de polygônes par exemple , je ne suis pas certain qu'utiliser une DL accélère beaucoup les choses), en changeant de texture pour les noeuds correspondant.

    Pour le changement de texture: tu fais juste un glBindTexture ou tu recrées la texture à chaque fois? La recréer est très couteux....

  3. #3
    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
    Citation Envoyé par GLDavid Voir le message
    Apparemment, mes mesures montrent que je passe du temps à afficher mes textures (des images PNG de 100px sur 100).
    Comment puis-je optimiser cela ? Dois-je laisser tomber les textures (qui ne sont pas capitales pour l'appli) ?
    des images de 100x100 pour tes textures qui font donc aussi 100x100 ?
    des textures dont les dimensions ne sont pas multiples d'une puissance de 2 peuvent également faire chuter le framerate

    c'est mieux suporté sur les cartes récentes mais pas toujours génial, les perfs s'effondrent en multipliant les textures
    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.

  4. #4
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Bonjour à vous

    Ok, je vais tenter vos deux solutions:
    1) ne plus passer par une display list pour les premiers voisins. C'est vrai, cela ne vaut aps grand chose en terme de performances.
    2) désormais mes textures feront du 64x64
    Je vais voir si c'est bénéfique.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  5. #5
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Bonjour

    Bon, ça semble aller mieux en effet.
    Donc, un grand merci shenron666 et ShevchenKik
    Maintenant, pour les gros réseaux, le problème est le calcul des premiers voisins, mais ça, c'est une autre histoire

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  6. #6
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Autre chose, le glBind n'a pas été utilisé, je vais donc l'employer également.
    Merci encore.
    Je marquerais résolu après l'essai du glBind

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  7. #7
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Ok, c'est parfait
    Je vais mesurer encore une fois pour voir les derniers goulots d'étranglements mais dans l'ensemble, c'est parfait

    Merci encore à vous.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation et display lists
    Par GLDavid dans le forum OpenGL
    Réponses: 9
    Dernier message: 08/04/2008, 18h41
  2. optimisations(vbo,display list) + bsp
    Par delfare dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 07/03/2007, 09h34
  3. Vertex Array dans Display List ?
    Par GruZloR dans le forum OpenGL
    Réponses: 3
    Dernier message: 29/03/2006, 12h55
  4. Petit problèmes avec display list et transformations
    Par Baptiste Wicht dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/02/2006, 17h00
  5. Multitexturing Vertex Array et Display List
    Par Wyatt dans le forum OpenGL
    Réponses: 1
    Dernier message: 04/05/2005, 15h07

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