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 et alpha


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut texture et alpha
    bonjour,

    je n'ai pas bien saisi si pour utiliser l'alpha dans des texture 2D (png) il faut l'activer ou pas (GL_RGBA suffit ou il faut en plus glEnable(GL_ALPHA_TEST) )?

  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

  3. #3
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    Donc a priori il suffit de spécifier gl_rgba dans glteximage2D. Mais je n'ai pas la transparence .

    Ma création de texture se fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	glBindTexture (GL_TEXTURE_2D,texDefault[GLScene::FICHIER]);
    	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
    	glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,TAILLE_ICON,TAILLE_ICON,0,GL_RGBA,GL_UNSIGNED_BYTE,this->iconDefaultFichier);
    J'ai bien sûr vérifier que mon image à une couche alpha.
    Au final j'ai mon image normale mais sans couche alpha.

  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
    As tu bien lu le tuto ?

    Car il parle aussi de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    glBlendFunc(GL_SRC_ALPHA,GL_ONE);   
    glEnable(GL_BLEND);
    etc....
    ... mais aussi d'ordre de rendu ... et d'incompatibilité avec le depthbuffer..

    Je te conseille de bien le lire et de bien le comprendre

  5. #5
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    pourquoi on désactive le test de profondeur (ce n'est pas possible de le faire sans trier les polygon ?) quand on veut utiliser GL_BLEND ?

    Et GL_BLEND me fait un truc assez moche , comme si il tracer les contour de mes faces de polygons

    edit : [HS]Je croise sur le net des versions de code qui utilisent une syntaxe du type : gl.glFonction(), c'est quoi ? Je n'avais pas vu de version objet quand j'avais cherché . [/HS]

  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
    Le problème avec le depthbuffer viens surtout que les faces qui sont derrière ta face transparente ne seront pas rendues.

    Je te conseille de regarder les différents paramètres de glBlendFunc pour bien comprendre sont fonctionnement.

  7. #7
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    En fait vu que j'ai besoin de la transparence sur tous mes plans je ne voit pas comment faire...

    gl_blend me donne pour le moment quelquechose de trés clair et mon alpha n'est pas reconnu (j'ai du blanc à la place)

    edit : le problème vient apperemment de ma texture : j'ai 4 couche et je récupère les valeur rgba directement, faut-il faire quelquechose sur la couche alpha (la ramener entre 0 et 1 par exemple ?)

    j'utilise glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); et mes couleurs sont trés trés clair (presque toutes blanches).

    Pour la transparence j'ai inversé ma couche alpha et ça a l'air de marcher.

    je pense que ma fonction de glBlend est mauvaise mais je ne vois pas laquelle mettre.

    edit : voilà ce que j'ai :
    http://pix.nofrag.com/b/4/9/c797bd06...56eec88b4.html

    Les images a droite (opengl) sont les même que celles de gauche (gtkmm)

    j'ai l'impression d'avoir compris les attributs de glBlendFunc mais il y a une problème (donc je n'ai pas dû comprendre ) :

    si j'ai plein d'objets transparents, si je fais toujours des sommes, j'aurais forcément des points blancs au final ... donc pas vraiment de transparence, non ? (enfin c'est ce qui a l'air de se passer pour moi)

    edit : j'aimerais une confirmation concernant la couche alpha : transparent =0 ou 255 (pour la texture) ?

  8. #8
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 573
    Par défaut
    Citation Envoyé par Rniamo Voir le message
    edit : [HS]Je croise sur le net des versions de code qui utilisent une syntaxe du type : gl.glFonction(), c'est quoi ? Je n'avais pas vu de version objet quand j'avais cherché . [/HS]
    en java opengl est encapsulé dans gl
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

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

Discussions similaires

  1. Texture DXT5 Alpha
    Par demss dans le forum DirectX
    Réponses: 1
    Dernier message: 30/08/2009, 06h54
  2. Render to Texture / couche alpha
    Par julien_v3ga dans le forum OpenGL
    Réponses: 8
    Dernier message: 15/11/2006, 10h10
  3. DX9: Alpha blending dans une texture intermédiaire
    Par Bart1971 dans le forum DirectX
    Réponses: 2
    Dernier message: 30/10/2006, 14h21
  4. [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
  5. Combiner plusieurs textures avec couches alpha
    Par TibobiT dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2004, 15h20

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