J'ai une texture OpenGL qui est liée à un simple quad.
Mon problème est le suivant : Ma texture est une image de 128x128 pixels. Je ne remplis qu'environ 100x60 pixels de cette image, les autres pixels sont transparents. Je l'ai sauvegardée dans un fichier .png. Lorsque je dessine, la partie transparente de la texture liée est blanche.
Disons que j'ai un arrière-plan. Lorsque je dessine ce nouveau quad sur cet arrière-plan, je ne peux pas voir la partie transparente de ma texture.
Des suggestions ?
Code :
// Init code...
gl.glEnable(gl.GL_TEXTURE_2D);
gl.glDisable(gl.GL_DITHER);
gl.glDisable(gl.GL_LIGHTING);
gl.glDisable(gl.GL_DEPTH_TEST);
gl.glTexEnvi(gl.GL_TEXTURE_ENV, gl.GL_TEXTURE_ENV_MODE, gl.GL_MODULATE);
// Drawing code...
gl.glBegin(gl.GL_QUADS);
gl.glTexCoord2d(0.0, 0.0);
gl.glVertex3f(0.0f, 0.0f, 0.0f);
gl.glTexCoord2d(1.0, 0.0);
gl.glVertex3f(1.0f, 0.0f, 0.0f);
gl.glTexCoord2d(1.0, 1.0);
gl.glVertex3f(1.0f, 1.0f, 0.0f);
gl.glTexCoord2d(0.0, 1.0);
gl.glVertex3f(0.0f, 1.0f, 0.0f);
gl.glEnd();
J'ai presque tout essayé, de l'activation du blending au passage à GL_REPLACE, mais je n'arrive pas à le faire fonctionner.
Edit:
// Texture. Have tested both gl.GL_RGBA and gl.GL_RGB8.
gl.glTexImage2D(gl.GL_TEXTURE_2D, 0, (int)gl.GL_RGBA, imgWidth, imgHeight,
0, gl.GL_BGR_EXT, gl.GL_UNSIGNED_BYTE, bitmapdata.Scan0);