そして、正しく表示されていますか?例では、四角形の中に丸い球があり、バックグラウンドで別のテクスチャを見ることができます。OpenGL ESでは、透明ピクセルを持つテクスチャをどのように読み込むのですか?
編集:現時点では、テクスチャを読み込むと、ソースイメージの透明ピクセルが黒く表示されます。 iPhoneとN95のために
そして、正しく表示されていますか?例では、四角形の中に丸い球があり、バックグラウンドで別のテクスチャを見ることができます。OpenGL ESでは、透明ピクセルを持つテクスチャをどのように読み込むのですか?
編集:現時点では、テクスチャを読み込むと、ソースイメージの透明ピクセルが黒く表示されます。 iPhoneとN95のために
この作品:
を使用すると、生データからテクスチャをロードする場合は、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);
@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);
gl.glBlendFunc(GL10.GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA)の 'GL10.'を忘れました。 ' – Vincent
ありがとう、私はそのタイプミスを修正する答えを編集しました!あなたはtexImage2dでそれを設定する前に、ビットマップをデコードしている場合、それはARGBのビットマップで指定することを忘れ 'tを – theisenp
:\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
を!この後、どのようにテクスチャの透明度を上げることができますか? – Dimitris
カラーモジュレーションを使用します。 glTexEnvx(GL_TEXTURE_ENV、GL_TEXTURE_ENV_MODE、GL_MODULATE); 次に、色のアルファ成分を設定します。 glColor4f(255,255,255、alpha); – Virne