Pb de transparence en OpenGL

cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 - 12 nov. 2004 à 10:41
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 14 nov. 2004 à 19:50
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

steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
12 nov. 2004 à 11:56
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.
0
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 1
12 nov. 2004 à 12:06
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...
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
12 nov. 2004 à 15:42
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...
0
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 1
12 nov. 2004 à 16:25
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é !)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
12 nov. 2004 à 18:48
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.
0
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 1
14 nov. 2004 à 10:47
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 !
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
14 nov. 2004 à 19:50
ha bon.
ben je sé pas, faut ptêt faire en sorte que su c'et ==0 on active le Zbuffer... ?
0
Rejoignez-nous