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 :

Conseil pour les performances


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut Conseil pour les performances
    Bonjour à vous tous .

    Je viens à vous pour vous demander des conseils sur tout ce qui est en rapport avec les performances d'OpenGL 4.0.

    Voilà, donc je commence avec le début, mes questions viendront s'ajouter sur le fil, et peut être que d'autres pourront y participé aussi et que ça sera un sujet intéressant ^^.

    Bref, voilà, pour le moment, je me pose des questions sur les variables uniform.

    Il y a plusieurs modes d'envoie des matrices aux Shaders.

    La première, la plus simple et la plus courante est celle d'utiliser les fonctions glUniformMatrix.

    La seconde, est celle d'utilisé un Uniform Buffer (Ou uniform Block si je ne me trompe pas).

    La troisième, et c'est celle ci que j'utilise pour le rendu par instances (je n'aime pas gl divisor machin truc car je ne comprends pas très bien ^^).
    Le fait de passé par une texture_buffer avec GL_RGBA32F :-) .

    Voilà, en gros je voulais savoir laquelle des trois était la plus rapide ^^.

    Merci à vous .

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 145
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Pour ce qui est des trucs plus rapide ou plus lents, j'ai envie de dire : il faut tester et benchmarker. Ici on trouve quelques conseils : http://alexandre-laurent.developpez....-source-linux/

    Après, le bottleneck classique, c'est le transfert entre le CPU et le GPU. Le mieux est donc d'envoyer le tout en une fois et cela, le moins souvent possible.
    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.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 219
    Par défaut
    Citation Envoyé par qnop Voir le message
    Bonjour à vous tous .
    La troisième, et c'est celle ci que j'utilise pour le rendu par instances (je n'aime pas gl divisor machin truc car je ne comprends pas très bien ^^).
    [clavier US]

    Hello !

    Rien de plus facil.

    A l'etape du vertex fetching, tu 'avences' d'un nombre d'octets N (definit par le parametre <stride> de glVertexAttributPointer) pour chaque vertices parce que par defaut le vertex attribut divisor de la composante est egal D=0 par defaut.

    Par contre si le vertex attribut divisor de la composante est egal D>0, alors tu 'avances' des N octets pour chaque multiple D des N instance. Par exemple, si D=2, alors pour dessiner 14 instances de ta teapot vaforite avec glDraw{Arrays,Elements}Instanced (ou autre appel d'instanciation), la taille de ton vertex array de la composante en question doit etre de 14/D = 7 elements. Note alors qu'avec D=1, alors tu avances des N octets pour chaque instances, ideal pour fetcher les matrices de position de tes instances distinctes depuis un vertex buffer array (generer par un computer shader par exemple).

    glVertexAttribDivisor permet simplement le changement du vertex attribut divisor de la composante en question.

    En esperant t'avoir fait comprendre ...

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut
    Coucou .

    Pour être honnête pas vraiment... Mais de toute façon, je trouve que de passé par une texture c'est plus naturelle ^^.
    Après faudra que je test les performances, mais je trouve ça bizarre la façon de faire ^^.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 145
    Billets dans le blog
    150
    Par défaut
    Même si c'est pour OpenGL ES, cela peut être intéressant de regarder les astuces utilisées par War Drum Studio, sachant qu'ils ont réalisés les GTA sur mobiles : http://jeux.developpez.com/tutoriels...ques-avancees/
    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. Des conseils pour la performance d'un serveur firebird?
    Par _skip dans le forum Installation
    Réponses: 2
    Dernier message: 19/12/2007, 21h05
  2. Petit conseil pour les identifiants et sequenceur
    Par kokumbo dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/11/2006, 14h32
  3. [CSS] Petits conseils pour les redimensionnements
    Par GLDavid dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 07/08/2006, 17h44
  4. Conseils pour meilleur performance serveur
    Par orelero dans le forum Développement
    Réponses: 6
    Dernier message: 24/05/2006, 15h29
  5. petit conseil pour les index
    Par fpouget dans le forum Langage SQL
    Réponses: 11
    Dernier message: 10/12/2005, 04h39

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