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 :

Porbleme avec les textures.


Sujet :

OpenGL

Vue hybride

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 71
    Par défaut Porbleme avec les textures.
    Bonsoir tout le monde.
    j'ai un petit probleme avec les textures.
    Je suis entrain de modeliser un chateau.si j'active la texture sur un cube bien precis tout le chateau prend cette texture.

    voila un bout du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Cube mur1(Vector(0,0,0),Vector(5,290,130),"brique.bmp");
    	Cube mur2(Vector(0,0,0),Vector(-390,5,130),"terre.bmp");
    	Cube mur3(Vector(0,0,0),Vector(5,290,130),"");
    	mur1.Render(camera);
    	mur2.Render(camera);
    	mur3.Render(camera);
    tout les murs prennent la texture "terre" alors que normalement je devrais avoir trois mur differents.
    dans le rander de Cube je fais un glBindTexture et un glDisable;

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Le code que tu nous as mis ne sert pas grand chose...

    Pourrais tu mettre le de ta méthode Render() ?

    Normallement, glBindTexture doit être appelé entre chaque rendu de géometrie
    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
     
    // cube 1
    glBindTexture();
    glBegin( ... );
     ...
    glEnd()
     
    // cube 2
    glBindTexture();
    glBegin( ... );
     ...
    glEnd()
     
    // cube 3
    glBindTexture();
    glBegin( ... );
     ...
    glEnd()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 71
    Par défaut
    voila la fonction render

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    void Cube::Render(const Camera& c)
    {
      // Ne dessine l'objet que s'il est visible
      if (!camera.View(box))
        return;
     
      glBindTexture(GL_TEXTURE_2D,tex_Mur[0]);
      glEnable(GL_TEXTURE_2D);
     
      glBegin(GL_QUADS);
     
      // Face z=-1
      glNormal3f(0.0f,0.0f,-1.0f);
      glVertex3f(a[0],a[1],a[2]);
      glTexCoord2f(0.0f,0.0f);
      glVertex3f(a[0],b[1],a[2]);
      glTexCoord2f(1.0f,0.0f);
      glVertex3f(b[0],b[1],a[2]);
      glTexCoord2f(1.0f,1.0f);
      glVertex3f(b[0],a[1],a[2]);
      glTexCoord2f(0.0f,1.0f);
     
      // Face z=+1
      glNormal3f(0.0f,0.0f,1.0f);
      glVertex3f(a[0],a[1],b[2]);
      glTexCoord2f(0.0f,0.0f);
      glVertex3f(b[0],a[1],b[2]);
      glTexCoord2f(1.0f,0.0f);
      glVertex3f(b[0],b[1],b[2]);
      glTexCoord2f(1.0f,1.0f);
      glVertex3f(a[0],b[1],b[2]);
      glTexCoord2f(0.0f,1.0f);
     
      // Face x=-1
      glNormal3f(-1.0f,0.0f,0.0f);
      glVertex3f(a[0],a[1],a[2]);
      glTexCoord2f(0.0f,0.0f);
      glVertex3f(a[0],a[1],b[2]);
      glTexCoord2f(1.0f,0.0f);
      glVertex3f(a[0],b[1],b[2]);
      glTexCoord2f(1.0f,1.0f);
      glVertex3f(a[0],b[1],a[2]);
      glTexCoord2f(0.0f,1.0f);
     
     
      // Face x=+1
      glNormal3f(1.0f,0.0f,0.0f);
      glVertex3f(b[0],a[1],a[2]);
      glTexCoord2f(0.0f,0.0f);
      glVertex3f(b[0],b[1],a[2]);
      glTexCoord2f(1.0f,0.0f);
      glVertex3f(b[0],b[1],b[2]);
      glTexCoord2f(1.0f,1.0f);
      glVertex3f(b[0],a[1],b[2]);
      glTexCoord2f(0.0f,1.0f);
     
      // Face y=-1
      glNormal3f(0.0f,-1.0f,0.0f);
      glVertex3f(a[0],a[1],a[2]);
      glTexCoord2f(0.0f,0.0f);
      glVertex3f(b[0],a[1],a[2]);
      glTexCoord2f(1.0f,0.0f);
      glVertex3f(b[0],a[1],b[2]);
      glTexCoord2f(1.0f,1.0f);
      glVertex3f(a[0],a[1],b[2]);
      glTexCoord2f(0.0f,1.0f);
     
      // Face y=+1
      glNormal3f(0.0f,1.0f,0.0f);
      glVertex3f(a[0],b[1],a[2]);
      glTexCoord2f(0.0f,0.0f);
      glVertex3f(a[0],b[1],b[2]);
      glTexCoord2f(1.0f,0.0f);
      glVertex3f(b[0],b[1],b[2]);
      glTexCoord2f(1.0f,1.0f);
      glVertex3f(b[0],b[1],a[2]);
      glTexCoord2f(0.0f,1.0f);
     
      glEnd();
      glDisable(GL_TEXTURE_2D);
    }

  4. #4
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    glBindTexture(GL_TEXTURE_2D,tex_Mur[0]);
    Tu ne prendrais pas toujours la même texture ?? vu que l'index de ton tableau est toujours 0 ??

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 71
    Par défaut
    Mais si je fait
    Cube mur1(Vector(0,0,0),Vector(5,290,130),"brique.bmp");
    Cube mur2(Vector(0,0,0),Vector(-390,5,130),"terre.bmp");

    normalement je devrais avoir 2 structure differentes
    mais c'est pas le cas

  6. #6
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Tout dépend de ce qu'est ton tableau "tex_Mur" ..

    Peux tu mettre le code complet de ta classe cube (.h et .cpp )?

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

Discussions similaires

  1. Problème avec les textures projectives
    Par sylvain_bos dans le forum Ogre
    Réponses: 0
    Dernier message: 03/01/2011, 17h49
  2. Problème avec les textures
    Par Letinono dans le forum CUDA
    Réponses: 1
    Dernier message: 07/07/2009, 16h06
  3. DirectX / 3dsmax - Exportation et chargement .x, probleme avec les textures
    Par Nikamura dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 06/12/2007, 20h30
  4. probleme avec les textures
    Par fantazya_z dans le forum GLUT
    Réponses: 14
    Dernier message: 19/02/2007, 21h34
  5. 3D en Java. Problème avec les textures !
    Par dotrungtien dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 07/04/2006, 19h43

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