Pb de transparence en OpenGL

Signaler
Messages postés
22
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
16 décembre 2011
-
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
-
Salut a tous, je débute en OpenGL et j'ai un petit pb avec la transparence : j'ai deux objets transparents qui sont cencés se croiser. C'est a dire que les objets doivent apparaitre transparents qd on en regarde un a travers l'autre.

Le probleme, c'est que d'apres ce que j'ai compris a l'OpenGL, il y a un ordre pour dessiner les objets. Ce qui fait que selon l'ordre dans lequel je dessine, c'est soit le premier que l'ont voit par transparence à travers le deuxieme, soit l'inverse...

Je sais pas si je suis très clair, mais si vous avez compris et que vous avez une reponse, elle sera la bienvenue ! (ou si vous avez pas compris et que vous voulez comprendre...)
Merci

7 réponses

Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
Bonjours,

Ca ne vient pas d'OpenGL mpais du fonctionnement du GPU, en toute logique la face transparente la plus proche du point de vue devra être dessinée en dernier, ou alors désactiver le test alpha lors du dessin des faces transparentes.
Messages postés
22
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
16 décembre 2011
1
Merci bien, mais le probleme, c'est qu'une partie d'un des objets peut très bien se retrouver a l'intérieur de l'autre...Et c'est ça mon probleme, on voit pas cette partie !
Sinon j'ai essayé de désactiver le test alpha, ça change rien...
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
haha la je te souhaite bon courage.
ce que dit steve est tout a fait vrai: pour faire une bonne transparence, il faut activer l'alpha et le z-buffer, trier tes polygones du plus loin au plus pres, puis afficher EN DERNIER.

la évidemment ca pose un probleme puisque les 2 polys se croisent.

2 solutions:
soit tu es sur fond noir (pas de décor ni rien), pas de pb, tu désactives le z-buffer
soit tu as un fond (map, skybox,...) et ...aie!
je pense que la seule solution serait de couper tous tes polygones en 2 (ou plus !) histoire qu'il n'y ait plus d'intersections, puis que tu affiches ca.

mais pour ca...
Messages postés
22
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
16 décembre 2011
1
Ouais, comme tu dis...
Alors effectivement, je suis sur fond noir et j'avais testé la desactivation du Z-buffer : en effet, ça marche, mais l'inconvenient (j'commence a etre lourd là, hein ?) c'est que l'opacité est réglable...Donc si le gars il met la transparence à 0 (les objets sont dc completement opaques), mes deux objets apparaissent l'un sur l'autre...l'effet est donc pas terrible !
Dc ta deuxieme solution, pourquoi pas..mais j'vois ça un peu mal qd meme !
En tout cas, merci bien de vous interessé a mon cas (qui est de plus en plus désespéré !)
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
t'inquiètes, la transparence c'est chiant ...

Mais ton exemple est nul, un objet avec 0 comme transparence n'est justement PAS transparent (!) donc c'est plus le meme pb.
Messages postés
22
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
16 décembre 2011
1
Mon exemple est peut etre nul, mais c'est comme ça, la transparence est réglable en direct dans mon appli...C'etait juste pour te repondre au sujet du Z-Buffer !
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
ha bon.
ben je sé pas, faut ptêt faire en sorte que su c'et ==0 on active le Zbuffer... ?