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
    Nouveau membre du Club
    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
    Points : 28
    Points
    28
    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 : 139
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
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    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
    Nouveau membre du Club
    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
    Points : 28
    Points
    28
    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
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    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
    Nouveau membre du Club
    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
    Points : 28
    Points
    28
    Par défaut
    Merci infiniment mon capitan

  6. #6
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    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 ?
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  7. #7
    Nouveau membre du Club
    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
    Points : 28
    Points
    28
    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 expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    De rien. Courage pour la suite
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    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