2012-04-08 6 views
0

Hallo Ich spiele mit OPENGL Es auf ANdroid und ich versuche, ein Bild in meiner App anzuzeigen. Wenn ich das Bild anzuzeigen (Bild specs 64x64 Pixel) bekomme ich einen schwarzen Hintergrund auf dem Bild, aber wenn ich diesen Code setzen:Bild mit schwarzem Hintergrund angezeigt OPENGL ES Android

public void draw(GL10 gl) { 
... 
.. 
gl.glAlphaFunc(GL10.GL_GREATER, 0); 

Der schwarze Hintergrund verschwindet, aber ich erhalte seltsame Farben in meinem Bild.

Hat jemand eine Idee, wie man das beheben kann?

+0

Einen Screenshot hochladen wäre gut. Etwas mehr Code zu veröffentlichen wäre noch besser. Enthält Ihr Bild einen Alpha-Kanal? Enthält der nicht gezeigte Code keine Alphatests? –

Antwort

1

Sie müssen Blending verwenden. So etwas sollte funktionieren:

gl.glEnable(gl.GL_BLEND); 
gl.glBlendFunc(gl.GL_SRC_ALPHA,gl.GL_ONE_MINE_SRC_ALPHA); 

Die Tatsache, dass Sie glAlphaFunc verwenden können und schließen auf Ihr Ergebnis legt nahe kommen, dass das Bild selbst in Ordnung zumindest ist.

+0

Danke für deine Antwort, ich habe das schon ausprobiert, aber alles, was ich bekomme, sind volle transparente Bilder übereinander. Ich habe bereits die folgenden Codes eingegeben und immer noch nicht funktioniert. – fynx

+0

gl.glTexEnvf (GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE,/* GL10.GL_REPLACE */GL10.GL_MODULATE); \t \t gl.glEnable (GL10.GL_ALPHA_TEST); \t \t // gl.glBlendFunc (GL10.GL_SRC_ALPHA, GL10.GL_AMBIENT_AND_DIFFUSE); \t \t gl.glClearDepthf (1.0f); \t \t gl.glEnable (GL10.GL_DEPTH_TEST); \t \t gl.glDepthFunc (GL10.GL_LEQUAL); – fynx

+0

Ich sehe keine GL_BLEND in dieser Zeile? –

Verwandte Themen