2011-08-07 3 views

答えて

5

これは通常でも3Dで、かなり頻繁に出くわす問題です。

私はCocos2Dに慣れていませんが、一般的なOpenGLでこれを解決する方法の1つは、フレームバッファに目的のアルファチャンネルを入力し、ブレンディングモードをglBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA)に切り替えて四角形を描きます。この背後にあるアイデアは、フレームバッファから取り出された所望の透明度を持つ矩形を描画しますが、進行マスクで描画した領域は後続の矩形がそこでマスクされるように描画されます。

もう1つのアプローチは、全体をテクスチャにレンダリングするか、重ならないポリゴンを使用してシェイプを組み立てることです。

私はそのように重複していない、私は特に提供Cocos2D何の能力を知りませんが、私は2つのオプション、

一つを見ることができます...

+0

そうです。 Fyiでは、blendfuncプロパティを使用してスプライトのブレンド機能を変更できます。すなわち、 'mysprite.blendFunc =(ccBlendFunc){GL_ONE_MINUS_DST_ALPHA、GL_DST_ALPHA};' –

2

Cocos2Dは、これらのいずれかをサポートしているかどうかわからないんだけど、

2つ目は、描画する際にステンシルバッファを使用してマスクを作成し、既にマスクされているピクセルを拒否することです。

関連する問題