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 :

Texture en tableau : glTexCoordPointer ?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Par défaut Texture en tableau : glTexCoordPointer ?
    Bonsoir à tous

    je me heurte à un problème et je ne trouve pas de ressource pour le résoudre,ce #@! de code

    En ait je cherche à utiliser les tableaux pour balancer mes points à dessiner : aucun problème pour afficher les vertices, par contre pour la texture, je sais pas du tout comment je dois faire

    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
    34
    35
    36
    37
    38
     
      static void drawFloor(GL myGL , Texture2D texture, float scale ) {
            float vertices[]    = new float[] { 0,0 , 35,0 , 35,30 , 0,30 , 0,30 , 35,30 , 20,40 , 
                                                0,40 , 0,40 , 135,40 , 135,66 , 0,66 ,
                                                0,66 , 35,66 , 35,99 , 0,99 , 0,99 , 35,99 , 20,110 , 0,110,
                                                0,110 , 178,110 , 178,129 , 0,129 , 36,129 , 178,129 , 178,139 , 36,139,
                                                36,139 , 56,139 , 56,155 , 36,155 , 36,155 , 142,155 , 142,161 , 36,161,
                                                0,161 , 142,161 , 142,183 , 0,183 };
     
            FloatBuffer tmp = BufferUtil.newFloatBuffer( vertices.length );
            for( int i = 0 ; i < vertices.length; i++ ) tmp.put( ( vertices[i] * scale ) );
            tmp.rewind();
            myGL.glEnableClientState( GL.GL_VERTEX_ARRAY );
            myGL.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY );
            // Les coordonnées vont 2 par 2
            myGL.glVertexPointer( 2 , GL.GL_FLOAT , 0 , tmp );
            myGL.glTexCoordPointer( 2 , GL.GL_FLOAT , 0 , tmp );
     
            int SIZE_FLOAT      = 4;
     
            int indices[] = new int[ vertices.length];
            for(int i = 0 ; i < vertices.length ; i++ ) indices[i] = i;//{ 0,1,2,3,4,5,6 };
            IntBuffer indicesBuf = BufferUtil.newIntBuffer( indices.length);
            indicesBuf.put( indices );
            indicesBuf.rewind();
     
            texture.bind();
            myGL.glColor3f(0.86f,0.53f,0.43f);
            myGL.glDisable( GL.GL_CULL_FACE );
            myGL.glPushMatrix();
                myGL.glTranslatef( 0 , 12.5f * scale , 0 );
                myGL.glRotatef( -90,1,0,0);
     
                myGL.glDrawElements(GL.GL_QUADS, vertices.length,GL.GL_UNSIGNED_INT, indicesBuf);
     
            myGL.glPopMatrix();
            myGL.glEnable( GL.GL_CULL_FACE );
        }
    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Par défaut
    Bon ca marche mieux en créant et en activant une texture avant

    Par contre je ne sais pas si j'utilise correctement les arrayList ? En gros est-ce que mon code est bon ?

    Allez, j'en profite pour poser la question à 1000 euros : quand je plaque une texture sur une surface en partie déjà texturée ( ex un toit sur des pans de murs ) : j'ai un effet de scintillement avec la superposition des textures Y a t'il un moyen d'éviter ça ?

  3. #3
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    je suppose que ton probleme vient du ZFigting entre les surface, tu doit pouvoir en partie resoudre le probleme en utilisant GL_LEQUAL comme fonction de depth test.
    En même temp, je ne suis pas sûre d'avoir completement compris le probleme
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Par défaut
    Par exemple j'ai une texture sur le sol et je décide de plaquer un parking :

    Je texture mon sol et ensuite je décide un quad avec une autre texture sur la première texture : en 'm'élevant / en m'éloignant' : z--, j'ai des effets de scintillements sur la texture ?

    Je vais regarder GL_LEQUAL et je te tiens au courant, merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Par défaut
    Yop, tout est ok :

    J'avais un znear trop petit : zNear = 0.001f, en le passant à 0.1f ca marche impec.

    Donc pour résumer :

    effets de scintillement sur les textures => vérifier que le znear ne soit pas trop petit.

    Désolé bafman, je garde les 1000 euros

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

Discussions similaires

  1. probleme avec affichage de texture, glTexCoordPointer
    Par paradize3 dans le forum OpenGL
    Réponses: 1
    Dernier message: 21/11/2008, 11h54
  2. Centrer un tableau texturé
    Par Deciprog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/06/2008, 17h20
  3. Réponses: 6
    Dernier message: 28/11/2006, 19h12
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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