23

そして、正しく表示されていますか?例としては、背景に別のテクスチャを表示できる一方で、長方形に丸いボールを配置する場合があります。

編集:現時点では、テクスチャをロードすると、ソース画像の透明なピクセルが黒で表示されます。

4

2 に答える 2

31

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);
于 2009-03-04T16:17:52.227 に答える
12

@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);
于 2011-11-04T13:12:41.963 に答える