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 :

Vertex Arrays : Multy textures


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Vertex Arrays : Multy textures
    Bonjour,

    Je programme un petit programme en 3D, et j'utilise les Vertex Arrays.
    J'utilise aussi la SFML.

    Je créé les coordonnées des vertices, les coordonnées des textures séparé suivant la texture.

    Je me retrouve donc avec 2 variables contenant les coordonnées de texture.
    Une pour la texture 1.
    L'autre la texture 2.

    voici mon code quand j'envoie les coordonnées :

    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
            glEnableClientState(GL_VERTEX_ARRAY);
     
            glClientActiveTexture(GL_TEXTURE1);
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            glTexCoordPointer(2, GL_FLOAT, 2*sizeof( float ), &texturestatique[0]);
            glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     
            glClientActiveTexture(GL_TEXTURE2);
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            glTexCoordPointer(2, GL_FLOAT, 2*sizeof( float ), &texturestatique2[0]);
            glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     
            glVertexPointer(3, GL_FLOAT, 3*sizeof( float ), &Vertex[0]);
            glDrawArrays(GL_TRIANGLES, 0, Vertex.size()/3);
            glDisableClientState(GL_VERTEX_ARRAY);
    J'ai essayé plusieurs variantes que j'ai trouvé sur internet, mais rien a faire.
    Mon rendu n'est pas texturé.
    Cela marche avec une texture, mais pas 2.

    Quelqu'un peut il m'aider ?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Salut,

    il ne faut appeller glDisableClientState(GL_TEXTURE_COORD_ARRAY) avant de faire ton rendu mais après. Sinon c est normal que tes triangles ne soient pas texturés.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    J'ai modifié...

    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
            glEnableClientState(GL_VERTEX_ARRAY);
     
            glClientActiveTexture(GL_TEXTURE1);
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            glTexCoordPointer(2, GL_FLOAT, 2*sizeof( float ), &texturestatique[0]);
     
            glClientActiveTexture(GL_TEXTURE2);
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            glTexCoordPointer(2, GL_FLOAT, 2*sizeof( float ), &texturestatique2[0]);
     
            glVertexPointer(3, GL_FLOAT, 3*sizeof( float ), &Vertex[0]);
            glDrawArrays(GL_TRIANGLES, 0, Vertex.size()/3);
     
            glDisableClientState(GL_VERTEX_ARRAY);
            glDisableClientState(GL_TEXTURE_COORD_ARRAY);

    Toujours pareil :s

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Le premier index de texture est 0 et non 1. Je pense qu il faut egalement desactiver toutes les textures activées (meme si ca ne changera rien a ton probleme). Essaie peut etre avec quelquechose comme ca :

    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
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 3*sizeof( float ), &Vertex[0]);
     
    glClientActiveTexture(GL_TEXTURE0);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glTexCoordPointer(2, GL_FLOAT, 2*sizeof( float ), &texturestatique[0]);
     
    glClientActiveTexture(GL_TEXTURE1);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glTexCoordPointer(2, GL_FLOAT, 2*sizeof( float ), &texturestatique2[0]);
     
    glDrawArrays(GL_TRIANGLES, 0, Vertex.size()/3);
     
    glDisableClientState(GL_VERTEX_ARRAY);
    glClientActiveTexture(GL_TEXTURE0);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glClientActiveTexture(GL_TEXTURE1);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    Check aussi ton mode de blending de texture peut etre
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

Discussions similaires

  1. Vertex arrays et textures
    Par quebecois dans le forum OpenGL
    Réponses: 6
    Dernier message: 20/01/2011, 14h46
  2. Vertex Array et Textures
    Par sye-laptop dans le forum OpenGL
    Réponses: 4
    Dernier message: 02/12/2010, 15h11
  3. Appliquer une texture en utilisant les Vertex Array
    Par ryosnake dans le forum OpenGL
    Réponses: 3
    Dernier message: 10/06/2009, 10h07
  4. vertex array
    Par Jbx 2.0b dans le forum OpenGL
    Réponses: 2
    Dernier message: 12/07/2004, 11h37
  5. Performance des vertex array
    Par Mathieu.J dans le forum OpenGL
    Réponses: 13
    Dernier message: 25/06/2004, 10h47

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