1

私は 2D AS3 プロジェクトに取り組んでおり、さまざまなレイヤーが Stage3D を介して単一の drawTriangles() 呼び出しで単一のメッシュとしてレンダリングされます。(BunnyMark GPUSprite ミニ レンダリング エンジンに精通している場合は、アイデアが得られます: http://www.bytearray.org/?p=4074 )

私が望むのは、描画されるすべての三角形に適用され、独自のアルファ値に追加される、全体的なアルファ透明度値を使用して、これらの「レンダー レイヤー」全体の 1 つを描画することです。

IE アルファ透明度を持つテクスチャを使用したり、同じアルファを持つように各三角形を個別に設定したりして、アルファを変更するつもりはありません。描画されるすべてのアルファ値に影響を与えるマスター スイッチが必要ですか? (計算上安価なもの)

これは可能ですか?おそらく、シェーダーまたは setProgramConstantsFromVector コマンドを介してですか?

4

1 に答える 1

0

レイヤーをテクスチャにレンダリングしてから、このテクスチャを必要なアルファでステージに配置できます。これにより、レイヤー全体が同じアルファになります。

これには 2 つの方法があります。最初の方法は、テクスチャにレンダリングし、Stage3D でそのテクスチャを表示して、アルファを調整するシェーダーを作成することです。

2 番目の方法は、それを bitmapData にレンダリングし、通常のステージに表示することです。この方法の例を示します。

var bmd:BitmapData = new BitmapData(renderWidth, renderHeight, true, 0);
var bit:Bitmap = new Bitmap(bmd);
bit.alpha = 0.5;
addChild(bit);

//In your render loop at the beginning
context3D.renderToBitmapData(bmd);
于 2012-08-30T22:10:52.887 に答える