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 :

Transparence en OpenGL sans glBlendColor


Sujet :

OpenGL

  1. #1
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Points : 172
    Points
    172
    Par défaut Transparence en OpenGL sans glBlendColor
    Bonjour,
    Je suis en train d'ecrir un ptit logiciel qui doit gerer l'affichage avec transparence.
    Les objet dans la scene sont organisés sous forme d'arbre.
    Si un noeud d'arbre est marqué comme transparent je le met dans une liste d'attente et apres que les objets opaques ont fini de s'afficher je balance les objets transparents.
    Le problem c'est que quand j'affiche les objets transparents je doit leur appliquer des matiere avec alpha different de 1.0 et donc pour chaque objet la matiere doit etre en double. Et d'autre part j'ai besoin de pouvoir modifier le niveau de transparence suivant le choix de l'utilisateur (tous les objets auront le meme niveau).
    Je voulai utiliser glBlendColor pour definir l'alpha pour tous les objets transparents mais le problem c'est que cette extension n'est pas supportée par des cartes graphiques unpeu anciennes (je travail avec une GMA 845).
    Est ce que vous avez une solution pour eviter de modifier les matieres et definir une valeur unique de transparence?

    Merci

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glColor4f(r, g, b, transparence);

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Tu peux toujours passer par les fragments shaders ..

  4. #4
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Points : 172
    Points
    172
    Par défaut
    Merci our vos reponces
    Comme j'ai indiqué l'appli doit tourner sur une machine de type bureautique. Dans mon cas c'est un portable avec une chiset GMA 855 ou 845 vieu de 4 ans.

    pour la solution avec glColor4f ca ne marche pas bien non plus. Vu que je gere la couleur des objets avec glMaterial et non glColor les deux ne peuvent pas etre utilisés en meme temps. Et si j'active glColorMaterial juste pour des objets tranparents ca marche mais le probleme c'est que ca prend uniquement une seul couleur, celle donnée par glColor4f alors que je veux avoir chaque objet avec sa propre couleur.

    Avez vous d'autres idées?

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

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 536
    Points : 5 219
    Points
    5 219
    Par défaut
    Citation Envoyé par goast Voir le message
    Je voulai utiliser glBlendColor pour definir l'alpha pour tous les objets transparents mais le problem c'est que cette extension n'est pas supportée par des cartes graphiques unpeu anciennes (je travail avec une GMA 845).
    Citation Envoyé par raptor70 Voir le message
    Tu peux toujours passer par les fragments shaders ..
    sur un GMA 845 ?

    je ne pense pas qu'il existe de solution toute faite pour ton cas
    tu vas devoir modifier le matérial existant

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    sur un GMA 845 ?
    J'avais pas vu


  7. #7
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Points : 172
    Points
    172
    Par défaut
    C'est bon j'ai reussi à combiner glColor4f avec glColorMaterial
    et une composante de lumiere ambiante assez grande pour avoir un effet de transaprence plus ou moins satisfaisante

    merci de votre aide ;-)

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

Discussions similaires

  1. Opengl sans acceleration 3d
    Par acx01b dans le forum OpenGL
    Réponses: 3
    Dernier message: 09/01/2007, 12h20
  2. Réponses: 2
    Dernier message: 14/09/2005, 18h09
  3. OpenGL sans fenetre OpenGl
    Par ihuop dans le forum OpenGL
    Réponses: 10
    Dernier message: 20/04/2005, 14h33
  4. opengl sans toolkit
    Par Vermin dans le forum OpenGL
    Réponses: 9
    Dernier message: 03/02/2004, 14h44
  5. Tore en OpenGL sans utiliser glut
    Par lefort dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/11/2002, 16h32

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