blending... finalement... (ou pas)
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
Code:
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);
} |
et voila la methode display
Code:
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
} |
j'espere que vous pourrez m'eclairer parce que ca fait 2 jours que je suis la dessus.
merci d'avance :D
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 :D)