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 :

Problème du textures à deux faces ! [OpenGL 1.x]


Sujet :

OpenGL

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Par défaut Problème du textures à deux faces !
    je viens de crée un cube 3D qui a des dimensions speciales, avec deux textures differentes, une pour la face et l'autre pour le dos.
    mais la texture de la face apparait sur la texture du dos , s'ils vous plais aidez moi pour que la texture du dos apparait correctement !
    voici mon code de creation du cube et de placage de la texture :
    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
     
     
    txtF=loadTexture(chartxtF);
        glBindTexture(GL_TEXTURE_2D, txtF);
     
    /// t ,w,h sont des (float) valeurs quelconque !
     
    /// face du bas
    glBegin(GL_QUADS);
     
        glTexCoord2d(0.3,0.3); glVertex3d(0,0,0);
        glTexCoord2d(0.3,0.4); glVertex3d(-t,0,0);
        glTexCoord2d(0.4,0.4); glVertex3d(-t,w,0);
        glTexCoord2d(0.4,0.3); glVertex3d(0,w,0);
     
    /// Grande face 1 : face
     
        glTexCoord2d(0,0); glVertex3d(0,0,0);
        glTexCoord2d(w,0); glVertex3d(0,w,0);
        glTexCoord2d(w,h); glVertex3d(0,w,h);
        glTexCoord2d(0,h); glVertex3d(0,0,h);
     
    ///
     
        glTexCoord2d(0.3,0.3); glVertex3d(0,w,0);
        glTexCoord2d(0.4,0.3); glVertex3d(-t,w,0);
        glTexCoord2d(0.4,0.4); glVertex3d(-t,w,h);
        glTexCoord2d(0.3,0.4); glVertex3d(0,w,h);
     
    ///
     
        glTexCoord2d(0.3,0.3); glVertex3d(0,0,0);
        glTexCoord2d(0.3,0.4); glVertex3d(0,0,h);
        glTexCoord2d(0.4,0.4); glVertex3d(-t,0,h);
        glTexCoord2d(0.4,0.3); glVertex3d(-t,0,0);
     
    /// face du haut
     
        glTexCoord2d(0.3,0.3); glVertex3d(0,0,h);
        glTexCoord2d(0.4,0.3); glVertex3d(0,w,h);
        glTexCoord2d(0.4,0.4); glVertex3d(-t,w,h);
        glTexCoord2d(0.3,0.4); glVertex3d(-t,0,h);
     
    glEnd();
     
            if(textureD != "NULL")
            txtD=loadTexture(chartxtD);
        else
            txtD=loadTexture(chartxtF);
     
        if(c.r==c.g==c.b==192)
        glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
     
        glBindTexture(GL_TEXTURE_2D, txtD);
     
     
    /// Grande face 2 : dos
    glBegin(GL_QUADS);
     
        glTexCoord2d(w,h); glVertex3d(-t,0,h);
        glTexCoord2d(0,h); glVertex3d(-t,w,h);
        glTexCoord2d(0,0); glVertex3d(-t,w,0);
        glTexCoord2d(w,0); glVertex3d(-t,0,0);
     
    glEnd();
     
        glDeleteTextures(1,&txtF);
        glDeleteTextures(1,&txtD);
    qui ce que dois-je faire ???!!!

    Nom : CaptureEcran.jpg
Affichages : 152
Taille : 41,1 Ko

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 054
    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 054
    Billets dans le blog
    141
    Par défaut
    Bonjour,

    Je pense, pour que cela soit possible, qu'il faille dessiner deux faces à la même position. Mais comme il va y avoir du recouvrement (overlapping), il faudra faire un glPolygonOffset().
    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 averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Par défaut
    Merci, vous pouvez me donner un exemple s'il vous plais , car j'ai jamais travailé avec cette méthode !

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 054
    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 054
    Billets dans le blog
    141
    Par défaut
    Dans l'idée :
    - affichage face 1
    - glPolygonOffset() // Pour faire un "décalage"
    - affichage face deux, aux même coordonnées que la face une
    - glPolygonOffset(0) // pour réinitialiser le décalage
    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
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Par défaut
    Merci infiniment mon capitan

  6. #6
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    euhh.. Je ne veux pas dire de bêtises mais en utilisant deux faces orientées dans des directions opposées et si le backface culling est activé, on peut obtenir l'effet escompté sans overlapping non ?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Par défaut
    yoooooooooooouuuupppppppppppppiiiiiiiiiiiiiiiiiiiiii he SkyZoThreaD vraiment tu ma sauvé la vie , La résolution du problème est donc L'activation de
    backface culling
    par les deux instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    glCullFace( GL_BACK );
    glEnable(GL_CULL_FACE);
    vraiment je vous remerciez infiniment

  8. #8
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    De rien. Courage pour la suite

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 054
    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 054
    Billets dans le blog
    141
    Par défaut
    Bien vu
    Une dernière solution : https://www.opengl.org/discussion_bo...ferent-texture encore un peu mieux.
    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. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. Problème de texture GLscène
    Par [Silk] dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2005, 18h29
  3. Réponses: 6
    Dernier message: 28/09/2005, 10h24
  4. Problème de texture
    Par filousnt dans le forum OpenGL
    Réponses: 4
    Dernier message: 26/06/2004, 20h11

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