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 :

appele de glDrawArrays pour dessiner avec plusieurs textures


Sujet :

OpenGL

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 900
    Points : 85
    Points
    85
    Par défaut appele de glDrawArrays pour dessiner avec plusieurs textures
    Bonjour,

    Je cherche à simplifier les appelles à glDrawArrays.
    Je m'explique , je suis obliger de faire un glDrawArrays à chaque changement de texture "glBindTexture".
    Y a t'il un moyen de faire en une seule fois un appel à glDrawArrays pour plusieurs texture à la fois ?
    Je suis sur un jeux ou je trace plusieurs murs définit dans le même VBO , et ils ont des textures différentes.

    Pour conclure Je souhaiterai passer en tant qu'attribut dans mon shader le descripteur dans la fonction glbindtexture.
    Je ne sais pas si cela est possible.


    Merci.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Vous pouvez soit faire du multitexturing, soit, si ce sont des petites textures, les assembler toutes dans une mega texture (attention, les carte graphiques ont des limitations de taille).
    On pourrait aussi parler de génération procédurale.

    Je pense le mieux, c'est de mettre sur la carte graphique N textures et d'utiliser un identifiant (attribut de sommet) pour les appliquer suivant l'identifiant. On pourrait pour cela utiliser une texture 3D, je pense.
    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 régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    900
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

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

    Vous pouvez soit faire du multitexturing, soit, si ce sont des petites textures, les assembler toutes dans une mega texture (attention, les carte graphiques ont des limitations de taille).
    On pourrait aussi parler de génération procédurale.
    mauvaise solution pour moi.
    Citation Envoyé par LittleWhite Voir le message
    Je pense le mieux, c'est de mettre sur la carte graphique N textures et d'utiliser un identifiant (attribut de sommet) pour les appliquer suivant l'identifiant. On pourrait pour cela utiliser une texture 3D, je pense.
    Oui ok mais comment je peux faire ? (pour la solution 2)

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Renseignez vous sur les textures 3D, donc. Je pense que c'est une bonne solution, enfin, je crois.
    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.

  5. #5
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Tout dépend de comment tu as construit ton buffer de sommets.
    Si tu as un buffer entrelacé (v1,n1,t1,v2,n2,t2, ...) tu peux intercaler un entier dans ce buffer (v1,n1,t1,i1,v2,n2,t2,i2, ...) et tu ajoutes le vertex attribute qui va bien avec le bon nom.
    Si tu as un buffer par composante, tu en crées un nouveau, et tu ajoutes le vertex attribute qui va bien avec le bon nom.

    Enfin, ça c'est dans le cas où tu travailles avec des shaders. Est-ce bien le cas ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 900
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Tout dépend de comment tu as construit ton buffer de sommets.
    Si tu as un buffer entrelacé (v1,n1,t1,v2,n2,t2, ...) tu peux intercaler un entier dans ce buffer (v1,n1,t1,i1,v2,n2,t2,i2, ...) et tu ajoutes le vertex attribute qui va bien avec le bon nom.
    Si tu as un buffer par composante, tu en crées un nouveau, et tu ajoutes le vertex attribute qui va bien avec le bon nom.

    Enfin, ça c'est dans le cas où tu travailles avec des shaders. Est-ce bien le cas ?
    Oui je travaille avec 2 shaders (vertex ,fragment),
    je voudrais passer le descripteur en tant qu'attribut dans mon shader au lieu de le passer dans glBindTexture ,et je ne sais pas faire.

    Pour info , je passe déjà en tant qu'attribut (la densité de brouillard, couleur du brouillard ) ok , ca fonctionne.

    Dans OpenGL je suis un peu novice.

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Tu ne pourras pas passer le descripteur de ta texture en tant qu'attribut.
    Il te faudra passer un index te permettant de définir à quelle texture est associé ton sommet.
    Tu as donc 2 choses :
    - Une texture 3D (ou un texture array, plus approprié dans ton cas, même si ça revient globalement au même).
    - Un attribut de plus intégré à ton buffer de sommets (l'index dans le texture array).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. [XL-2010] Libellés pour histogramme avec plusieurs séries
    Par Billou265 dans le forum Excel
    Réponses: 2
    Dernier message: 01/08/2010, 19h57
  2. [Irrlicht] Utiliser un mesh avec plusieurs textures
    Par demonixis dans le forum Irrlicht
    Réponses: 4
    Dernier message: 05/11/2009, 21h28
  3. Remplir une zone fermée d'un dessin avec une texture
    Par elfdav dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/03/2009, 03h15
  4. Réponses: 8
    Dernier message: 19/03/2008, 20h08
  5. Réponses: 7
    Dernier message: 04/06/2006, 18h00

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