tutorial texture texturas sirve que para multiples gltexcoord2f example ejemplos opengl-es

texture - En OpenGL ES, ¿cómo cargo una textura que tiene píxeles transparentes?



texturas multiples opengl (2)

Para iPhone y N95 esto funciona:

Si está cargando texturas a partir de datos brutos, configure el formato interno y el formato fuente en GL_RGBA.

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureWidth, textureHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, pointerToPixels);

Y al renderizar, habilite la mezcla alfa:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND);

¿Y luego mostrar correctamente? Un ejemplo sería tener una bola redonda en un rectángulo mientras se puede ver otra textura en el fondo.

editar: en este momento, cuando cargo la textura, los píxeles transparentes de la imagen original se muestran en negro.


La respuesta proporcionada por @Virne es correcta, y pude usarla para dispositivos Android con algunas pequeñas modificaciones. El objeto myImage que utilicé es una imagen .png estándar con transparencia.

Creé la textura usando esto:

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, myImage, 0);

Y (como Virne), habilité la mezcla alfa cuando renderizaba:

gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); gl.glEnable(GL10.GL_BLEND);