Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 2010
-
23 oct. 2004 à 23:16
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 2010
-
26 oct. 2004 à 19:22
salut, je suis en train de faire un moteur de particules; il est fini, mais seulement ,quand plusieurs particules se superposent ca fait un effet super bizarre, on voit le bord des carrés , qui sonttransparents, alors que l'intérieur est normal. c'est un peu dur a expliquer, j'autais bien mis un screenshot, mais multimania il refuse qu'on accede directement a un de ses fichiers :( grr...
il va de soi que je n'ai pas oublié les commandes
glEnable(GL_BLEND);glBlendFunc(GL_SRC_ALPHA,GL_ONE);
(cf source de CaptainPartGl), mais on peut pas dire que ça fasse grand chose (bon ca c'est pas tres juste, quand on le met pas on voit tous les carrés pas transparents du tout...)
Que diable faire?
voili voilou, merci, bonne soirée, et TRES bonnes vacances a ceux qui ont pas cours le samedi :)
zoom1984
Messages postés17Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention26 février 2005 26 oct. 2004 à 05:00
Yo
Un classique.
Le problème c que tes particules écrivent dans le zbuffer même lorsque tu affiches un texel avec un alpha à 0 (complètement transparent). Donc les particules qui doivent s'afficher derrière seront clippées par le zbuffer. D'où l'effet bizarre.
Il faut que tu désactives l'écriture dans le zbuffer.
Je connais pas la fonction en OpenGL, mais si tu ne la trouves pas tout seul, un intégriste d'OpenGL va sûrement te renseigner.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 26 oct. 2004 à 11:35
c'est
glDisable(GL_DEPTH);
je l'ai mise, et ca marchje...qd ya pas de fond derriere, pasque quand l'écran est noir ca marche impec, sinon les particules s'affichesmeme qd elles sont derriere un mur.
je pense que la meileur solution serait de tout afficher d'abord, puis de tester pour chaque particule si il faut l'afficher. Je sais comment obtenir la valeur du z-buffer en un point 2D, mais ma particule est en 3D, donc il me faudrait les coords de la particule en 2D et ca je sé pas faire