Frage

Und dann richtig hat Anzeige? Ein Beispiel wäre in einem Rechteck mit einer runden Kugel sein, während eine andere Textur im Hintergrund in der Lage zu sehen.

bearbeiten. Im Moment, als ich die Textur der transparenten Pixel aus dem Quellbild geladen werden als schwarz angezeigt

War es hilfreich?

Lösung

Für iPhone und N95 dies funktioniert:

Wenn Sie Textur aus Rohdaten werden geladen, stellen interne und Quellformat in GL_RGBA.

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

Und beim Rendern aktiviert Alpha-Blending:

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

Andere Tipps

Die Antwort von @Virne vorgesehen ist richtig, und ich konnte es für Android-Geräte mit ein paar kleinen Änderungen verwenden. Das myImage Objekt I verwendet wird, ist ein Standard-.png Bild mit Transparenz.

Ich habe die Textur mit diesem:

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

Und (wie Virne), I aktiviert Alpha-Blending beim Rendern:

gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL10.GL_BLEND);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top