2012-01-18 7 views
0

私が書いているゲームは2つのレイヤーを持っています。最初のものは背景レイヤーで、背景イメージをポリゴンにテクスチャ加工して描画します。第2レベルには、背景レイヤーの上で画面を移動する小さなポリゴン(ボールを表す)があります。OpenGLを使用してAndroid上でボールの周りのエッジが透明なポリゴンにビットマップ(ボール)を描画

小さなポリゴン(2番目のレイヤー)にボールのPNGをテクスチャすると、テクスチャが描画されますが、残りの小さなポリゴンは黒です。私はボールの裏にある黒を透明にして、背後の背景を見ることができるようにします。言い換えれば、ボールの一部ではないポリゴン上のすべてのピクセルが透明である必要があります。

私はブレンドを実験しましたが、成功しませんでした。

どうすればこの問題を解決できますか?

答えて

1

ボールを描画するときにブレンドを有効にします。ボールPNGにはアルファチャンネルがあり、必要な場所で透明になっている必要があります。

glDisable(GL_BLEND); 
draw_background(); 

glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
draw_ball(); 
関連する問題