2つのレイヤーが描画されています。静的背景テクスチャと透明部分を持つテクスチャ(png)。私は問題なく背景を正しく見ることができます。私がしたいのは、実行時に変更されるサイズのポリゴン(四角形)を描画してトップレイヤーを変更することです。多角形が透明になるようにポリゴンを描き、ポリゴンがOpenGL ESにある場合
iphone用にCocos2dを使用していて、著者(#6を参照)がnice solutionを見つけましたが、彼の例では、別のPNGファイルをマスクとして使用しています。実行時に可変の高さと幅で透明部分が作成されるため、画像は機能しません。イメージ(マスク)を何度も描画するオーバーヘッドは、私にとっては思っていたほどです。
これはしばらくの間研究していましたが、ポリゴンをアルファチャンネルだけに描画することについて話をしていましたが、このチャンネルに描画するポリゴンを取得できました。より明るい色。
私はちょうど何か簡単な行方不明だということを期待しています:私はGL_ONE GL_ZERO GL_ALPHA_FROM_SRCなどの切り抜いた組み合わせのトンを試してみました
RenderTexture *mBurnLayer = [RenderTexture renderTextureWithWidth:512 height:512];
Sprite *burn = [Sprite spriteWithFile:@"bg-new.png"];
[burn setPosition:cpv(480/2,320/2)];
[mBurnLayer setPosition:cpv(256,256)];
[mBurnLayer begin];
glColorMask(TRUE, TRUE, TRUE, TRUE);
[burn visit];
glColorMask(TRUE, TRUE, TRUE, FALSE);
[mBurnLayer end];
[self addChild:mBurnLayer];
[mBurnLayer begin];
glColorMask(FALSE, FALSE, FALSE, TRUE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glColor4ub(1, 1, 1, 0.5);
glLineWidth(10);
CGPoint vertices[] = { ccp(100,100), ccp(100,200), ccp(200,200), ccp(200,100) };
drawPoly(vertices, 4, YES);
glColorMask(TRUE, TRUE, TRUE, TRUE);
を....
はまた、多分読んで、私はちょうどに必要テクスチャをクリップしますか?これはシェーダなしでも可能ですか?私はiPhone 3GSがシェーダを行うことができることを知っていますが、以前のものはできません。