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 :

Couleur transparente sur une texture TGA


Sujet :

OpenGL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut Couleur transparente sur une texture TGA
    Bonjour,

    J'utilise le loader TGA trouvé sur développez.com (je remercie d'ailleurs son auteur au passage ) pour importer des textures en OpenGL.
    L'import fonctionne très bien seulement je n'arrive pas à faire en sorte que la couleur de fond de mon image devienne transparente lors du rendu final. J'utilise le logiciel Gimp.

    Merci pour votre aide,

    Alex.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu as vérifié que le chargeur gérait correctement le canal alpha ? Tu as activé comment l'alpha-blending pour le rendu ? Comment as-tu parametré ton unité de texture (la fonction qui parle de GL_MODULATE ou GL_REPLACE) ?

  3. #3
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Salut,

    Vérifie également du coté de ton image si tu as bien rajouté de la transparence dessu. Sous Gimp je crois que c'est un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Calque > Transparence > Canal Alpha
    Si tu as bien le calque transparence d'activé pour ton image TGA, alors le soucis vient de ton programme.

    Bonne soirée.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    Tu as vérifié que le chargeur gérait correctement le canal alpha ? Tu as activé comment l'alpha-blending pour le rendu ? Comment as-tu parametré ton unité de texture (la fonction qui parle de GL_MODULATE ou GL_REPLACE) ?
    J'ai activé l'alpha-blending comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_DEPTH_TEST);
    glEnable (GL_BLEND);
    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    sans oublier auparavant de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
    Pour l'unité de texture je ne vois pas ce que tu veux dire... Après avoir chargé la texture en faisant appel au loader, j'ajoute juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glBindTexture (GL_TEXTURE_2D, texture[2]);
    Avant de dessiner, c'est tout (à mon avis j'ai dû oublier de faire un truc...)

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    En fait je vois toujours pas ce qui cloche, je dois oublier de spécifier quelque chose... mais quoi ?

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    Bon apparemment ça fonctionne.... je dis "apparemment" parce que comme le fond de l'image apparaît noir et que mon fond d'écran est noir ça devrait être bon... Pour en être sûr, j'aurais besoin de superposer deux textures (celle avec l'alpha-blending sur une autre "normale"). Quelqu'un saurait-il comment procéder ?
    MERCI

  7. #7
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Ou simplement tu change la couleur de fond juste pour le test ? non ? ^^

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    Oui je viens de le faire ça fonctionne
    Il n'empêche que j'aimerais bien superposer mes deux textures quand même

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    Quelqu'un aurait-il une idée ?
    Merci d'avance,

    Alex

  10. #10
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par alex6891
    Quelqu'un aurait-il une idée ?
    Merci d'avance,

    Alex
    Je ne comprends pas le problème... Tu dessines d'abord l'image de fond sans l'alpha-test et ensuite, tu dessines l'image avec l'alphatest...

    Quel est le problème ?

    Jc

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    C'est ce que je fais mais le souci c'est que je ne vois que l'image de fond !

    Voilà le code que j'ai écrit pour dessiner un quad texturé au dessus d'un autre quad (le seul qui apparaît à l'écran lors du rendu) après avoir correctement chargé les textures TGA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /*glEnable(GL_ALPHA_TEST);
    glAlphaFunc(GL_GREATER, 0.0f); // alpha-test*/
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // alpha-blending
    drawQuads(x,y,size); // dessin du perso
    //glDisable(GL_ALPHA_TEST);
    glDisable(GL_BLEND);
    Et je ne vois pas ce qui cloche...

  12. #12
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Et avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glDisable(GL_DEPTH_TEST);
    à placer avant l'affichage du second quad ?

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 219
    Points : 44
    Points
    44
    Par défaut
    En effet, il suffisait de désactiver le test de profondeur, puis de le réactiver après. Merci Ti-R

  14. #14
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Bah de rien

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/11/2010, 20h34
  2. Directx 8 Probleme avec setrenderTarget pour un rendu du monde sur une texture
    Par zerailkiller dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 14/01/2007, 13h50
  3. [JAVA3D] Comment active-t-on l'alpha sur une texture?
    Par SuperCed dans le forum OpenGL
    Réponses: 3
    Dernier message: 08/06/2005, 10h50
  4. Propagation d'un motif sur une texture . ?
    Par Clad3 dans le forum OpenGL
    Réponses: 8
    Dernier message: 03/06/2005, 16h53
  5. Charger 16x16 sur une texture 256x256
    Par Johngame dans le forum DirectX
    Réponses: 4
    Dernier message: 06/03/2004, 17h16

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