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 :

Superposé deux textures


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 66
    Par défaut Superposé deux textures
    Bonsoir,

    J'aimerai blité deux textures différente sur la même face de mon cube.
    Mon but serai d'avoir ce type rendu :


    Je dessine et texture mes faces via un VBO. Et c'est ça qui pose problème. Comment superposé deux textures en utilisant cette technique d'affichage?

    Merci d'avance et bonne fin de soiré a tous.

  2. #2
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Par défaut
    Avec un shader qui prend les deux textures en entrée et tu utilise la fonction mix pour mélanger les deux couleurs.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 66
    Par défaut
    Hum, ça me parai bien compliqué :s. J'ai du boulot

    Edit :
    Si j'ai bien compris il faut que je fasse quelque chose de ce genre la :
    http://www.gamedev.net/topic/534826-...xture-problem/

    Ok mais comment l'appliqué avec les vbo?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 156
    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 156
    Billets dans le blog
    151
    Par défaut
    Citation Envoyé par baton Voir le message
    Hum, ça me parai bien compliqué :s. J'ai du boulot
    Un exemple: http://www.lighthouse3d.com/opengl/g...p?textureMulti

    Mais je croyais qu'il y avait un autre exemple, sans shader (avec une extension pour le multitexturing).
    Dans les tutos de NeHe peut être...
    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 confirmé

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

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    Si tu utilises OpenGL 2.x ou un contexte 3.x compatible, tu peux utiliser le multitexturing fourni par OpenGL et les texture environment avec glTexEnvi
    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 Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    Citation Envoyé par baton Voir le message
    Hum, ça me parai bien compliqué :s. J'ai du boulot

    Edit :
    Si j'ai bien compris il faut que je fasse quelque chose de ce genre la :
    http://www.gamedev.net/topic/534826-...xture-problem/

    Ok mais comment l'appliqué avec les vbo?
    HS : "superposer", "appliquer".. Si tu n'es pas sûr de la terminaison du verbe en "er", tu remplaces par un verbe d'un autre groupe genre "finir" ou "faire"..

    Pour faire ce que tu veux, la méthode "moderne" c'est d'utiliser les shaders.

    couleur1 = lire texture 1
    couleur2 = lire texture 2
    couleur destination = couleur1 * couleur2 (multiplication par composant).

    Il faut que tu apprennes à décrire ces transformations en terme de manipulations mathématiques de base (multiplication, addition, etc). C'est vraiment beaucoup plus simple et c'est de toute façon ce que fait la carte graphique en interne.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 66
    Par défaut
    Bonsoir,

    Après quelques soirée de testes et de recherche j'ai un probléme que je ne parvient pas a résoudre.

    Voici le code (simplifier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
            glBindBuffer(GL_ARRAY_BUFFER, buf);
     
            glVertexPointer(2, GL_FLOAT, 0, 0);
     
     
    		glBindTexture( GL_TEXTURE_2D, texture1);
    		glActiveTextureARB( GL_TEXTURE0_ARB );
    		glEnable( GL_TEXTURE_2D );
     
            glEnableClientState( GL_TEXTURE_COORD_ARRAY );
            glBindBuffer(GL_ARRAY_BUFFER, buf2);
            glClientActiveTextureARB(GL_TEXTURE0_ARB);
            glTexCoordPointer( 2, GL_FLOAT, 0, 0);
     
     
    		glBindTexture( GL_TEXTURE_2D, texture2);
    		glActiveTextureARB( GL_TEXTURE1_ARB );
    		glEnable( GL_TEXTURE_2D );
     
            glEnableClientState( GL_TEXTURE_COORD_ARRAY );
            glBindBuffer(GL_ARRAY_BUFFER, buf3);
            glClientActiveTextureARB(GL_TEXTURE1_ARB);
    	glTexCoordPointer( 2, GL_FLOAT, 0, 0);
     
            glEnableClientState(GL_VERTEX_ARRAY);
     
            glDrawArrays(GL_TRIANGLES, 0, 3);
     
    	glDisableClientState( GL_TEXTURE_COORD_ARRAY );
    	glDisableClientState( GL_TEXTURE_COORD_ARRAY );
            glDisableClientState(GL_VERTEX_ARRAY);
     
            glFlush();
    Ce code affiche bien deux texture superposé mélangé avec des shader. Le problème c'est que c'est la même texture alors qu'elles devrais être différente...

    Une idée?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 156
    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 156
    Billets dans le blog
    151
    Par défaut
    Le glEnable(GL_TEXTURE_2D) ne devrait apparaitre qu'une fois au début du programme.

    Les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    glBindTexture( GL_TEXTURE_2D, texture1);
    glActiveTextureARB( GL_TEXTURE0_ARB );
    Devrait être inversées, je pense. (Soit, le glActiveTextureARB en premier).
    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.

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

Discussions similaires

  1. [GLSL] afficher la superposition de deux textures
    Par mamelouk dans le forum OpenGL
    Réponses: 6
    Dernier message: 19/11/2008, 13h33
  2. texture et puissance de deux..encore
    Par mm2405 dans le forum OpenGL
    Réponses: 11
    Dernier message: 12/07/2006, 12h42
  3. Réponses: 1
    Dernier message: 11/10/2005, 23h50
  4. [VB.NET] comment superposé deux couches
    Par ero_senin dans le forum OpenGL
    Réponses: 1
    Dernier message: 17/01/2005, 08h12

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