2012-04-08 51 views
0

こんにちは、私はANdroidのOPENGL Esで遊んでいて、私のアプリに画像を表示しようとしています。私は(画像の仕様は64×64ピクセル)で画像を表示するとき、私は、画像上の黒の背景を得るが、私はこのコードを置くとき:画像は黒い背景で表示されていますOPENGL ES Android

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

を黒の背景が消えますが、私は私のイメージでは奇妙な色を取得します。

誰でもこの問題を解決する方法について考えていますか?

+0

スクリーンショットを投稿すると良いでしょう。さらにコードを投稿するほうがずっと良いでしょう。画像にアルファチャンネルが含まれていますか?表示されていないコードにはアルファテストが含まれていますか? –

答えて

1

ブレンドを使用する必要があります。このような何か作業をする必要があります:

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

あなたがglAlphaFuncを使用し、その結果に近いを得ることができるという事実は、画像自体は少なくとも大丈夫であることを示唆しています。

+0

あなたの返事をありがとう、私はすでにそれを試みましたが、私が得るのは、完全に透明な画像を重ね合わせたものです。私はすでに次のコードを配置してもまだ動作しませんでした。 – 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); (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

その行にGL_BLENDはありませんか? –

関連する問題