salut,
bon je sais pas si ca concerne vraiment le multi texturing, i me semble en tt cas.
donc voila, je suis en train de developper un petit jeu en 2d (vue de haut) type zelda.
Et le probleme auquel je suis confronte est le suivant :
apres avoir dessine la carte du jeu (juste une texture d'herbe pour le moment), je veux rajouter la texture representant le personnage.
cette texture est au format png avec un fond transparent.
Or, a l'execution, mon personnage s'affiche bien mais le fond de la texture, soi-disant transparent, apparait en blanc et cache donc la texture d'herbe.
et donc, je voudrais que ce fond transparent le soit vraiment sans avoir a jouer avec l'alpha parce que je n'ai pas envie de voir a travers mon personnage.
Pour le moment, je fais ca mais a priori c pas bon.
voila l'init d'OpenGL
et voila la methode display
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public void init(GLAutoDrawable drawable) { GL gl = drawable.getGL(); gl.glEnable(GL.GL_TEXTURE_2D); // Enable Texture Mapping gl.glShadeModel(GL.GL_SMOOTH); // Enable Smooth Shading gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Black Background gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); // Really Nice Perspective Calculations gl.glAlphaFunc(GL.GL_GREATER, 0.0f); gl.glEnable(GL.GL_ALPHA_TEST); gl.glClearDepth(1.0); //Enable Clearing of the Depth buffer gl.glDepthFunc(GL.GL_LEQUAL); //Type of Depth test gl.glEnable(GL.GL_DEPTH_TEST); //Enable Depth Testing LoadGLTextures(gl); }
j'espere que vous pourrez m'eclairer parce que ca fait 2 jours que je suis la dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public void display(GLAutoDrawable drawable) { gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT ); gl.glLoadIdentity(); gl.glTranslatef(x_axe, y_axe, profondeur_); gl.glBindTexture(GL.GL_TEXTURE_2D, textures[1]); gl.glEnable(GL.GL_BLEND); gl.glBegin(GL.GL_QUADS); /*...*/ gl.glEnd(); gl.glBlendFunc(GL.GL_DST_ALPHA, GL.GL_ONE_MINUS_DST_ALPHA); gl.glDisable(GL.GL_BLEND); // Disable Blending }
merci d'avance![]()
a plouche
PS : j'ai vu qu'il y avait des posts concernant des pbs similaires sur ce forum, je les ai mm lu, mais aucun ne m'a permis de regler mon souci. (je precise pour pas me faire incendier)
Partager