0

単色(例:(255,255,255))のアルファを0に設定したいテクスチャがあります。

私は現在この呼び出しを使用しています(self.textureはcocos2dのCCTexture2Dです)

glBindTexture(GL_TEXTURE_2D, self.texture.name);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, baseAddress);

テクスチャが完全に表示されます。あなたが私を助けてくれることを願っています。

4

2 に答える 2

1

私がこれを理解したかどうかはわかりませんが、openglはかなり新しいですが、1つの色だけを透明にしたいのですが、2つのテクスチャを重ねて、1つを透明にすることはできません。

gl.glblendfunc()

boolean SEE_THRU = true;
if (SEE_THRU) {
gl.glDisable(GL10.GL_DEPTH_TEST);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
}
于 2012-04-13T09:26:39.263 に答える
0

OpenGLコマンドでこれを行う方法はありません。baseAddressglTexImage2Dにアップロードする前に、シェーダーを使用して特定の色のピクセルをフィルター処理するか、ピクセルごとのループでピクセルデータを変更する必要があります。

于 2012-04-10T18:41:43.270 に答える