1

基本的に、MovieClipsとして表されるx個の円があります。それらはすべて同じ基本色(たとえば赤)が割り当てられます。それらはすべて、0から1の範囲の明るさプロパティを持っている必要があります(0は完全に白、1は完全に赤になります)。

これらのサークルをステージで表現するために、次のプロパティが必要です。

  1. 円が重ならない場合は、上記のように表されます。
  2. 円が重なる場合、重なる領域は元の円と同じ基本色である必要がありますが、その領域の明るさは、重なる部分を定義するすべての円の明るさの合計である必要があります。
  3. 明るさは1で飽和します。したがって、明るさが0.8の2つの円の重なりは、1.6ではなく1(最大値)になります。

これらのプロパティを実現するためにサークルで使用できるBitmapFilterの種類があるかどうか疑問に思っていますか?それとも私は間違った場所を見ていますか?

私はActionscriptに比較的慣れていないので、どんなポインタでも大歓迎です!

4

1 に答える 1

2

こんにちは、SOとAS3へようこそ!

各ポイントを個別に取り上げます。

1)非常に簡単ですが、「addChild()」がMovieClipオブジェクトをディスプレイリストに追加すること、つまりFlashがフレームごとにオブジェクトをレンダリングすることをすでに理解しているでしょう。

2)これを行う最も簡単な方法は、「ブレンドモード」を使用することです。これは、重複する表示オブジェクトを処理するAdobeの方法です。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#blendMode

各円の.blendModeプロパティをBlendMode.ADDに設定してみてください。

var circle:MovieClip = new MovieClip();
circle.blendMode = BlendMode.ADD;

3)BlendMode.ADDで目的の結果が得られない場合は、カスタムシェーダーを作成して作業を行ってみてください。

http://help.adobe.com/en_US/as3/dev/WSB19E965E-CCD2-4174-8077-8E5D0141A4A8.html

IMHO Blendmodeは、目的の効果を実現する最も簡単な方法であり、正確なカスタマイズが必要な場合はblendShaderです。ご不明な点がございましたらコメントしてください!

いくつかのチュートリアルと例:

http://www.learningactionscript3.com/2007/11/03/more-properties-blendmodes-filters/

http://active.tutsplus.com/tutorials/games/introducing-blend-modes-in-flash/

乾杯、

J

于 2011-07-19T21:57:43.177 に答える