2009-03-04 13 views

答えて

30

この作品:

を使用すると、生データからテクスチャをロードする場合は、GL_RGBAに内部およびソース形式を設定しました。

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

とレンダリング、アルファブレンドを有効にします。

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

を!この後、どのようにテクスチャの透明度を上げることができますか? – Dimitris

+2

カラーモジュレーションを使用します。 glTexEnvx(GL_TEXTURE_ENV、GL_TEXTURE_ENV_MODE、GL_MODULATE); 次に、色のアルファ成分を設定します。 glColor4f(255,255,255、alpha); – Virne

11

@Virneが提供する答えが正しいか、と私はいくつかの小さな変更でAndroidデバイスのためにそれを使用することができました。私が使用したmyImageオブジェクトは、透明な標準.png画像です。

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

をレンダリングするとき(Virneのように)、私はアルファブレンドを有効に:

は、私はこれを使用してテクスチャを作成したおかげで動作します

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

gl.glBlendFunc(GL10.GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA)の 'GL10.'を忘れました。 ' – Vincent

+0

ありがとう、私はそのタイプミスを修正する答えを編集しました!あなたはtexImage2dでそれを設定する前に、ビットマップをデコードしている場合、それはARGBのビットマップで指定することを忘れ 'tを – theisenp

+0

:\t \t \t \t BitmapFactory.Optionsは)(=新しいBitmapFactory.Optionsを付き合えません。 \t \t opts.inPreferredConfig = Bitmap.Config.ARGB_8888; \t \tビットマップビットマップ= BitmapFactory.decodeResource(context.getResources()、R.drawable.bitmap、opts); – jonathanrz

関連する問題