[Flashの高速化を試す]BitmapDataを配列に格納することで2〜3倍の高速化

090425_arrow

3Dのパーティクルに被写界深度をつけてみた」で紹介した Flash で被写界深度表現を高速化する常套手段ですが、もっと身近で実用しやすい例で試してみました。500〜1000個ぐらいの矢印がランダムに動き回ります。

前者は矢印のシェイプをもったインスタンスが動き回るデモで私の環境では500個でfps30程度、後者は矢印のシェイプをプレレンダリングしたデモで1000個でfps50程度でてます。具体的な数字にしずらいのですが、単純に言ってしまえば2〜3倍くらいは高速化しています。(※当方の環境は Mac OS X 10.5, iMac, Core Duo 2GHz, Memory 2GB, Windowsだともっと早いです)

元ネタ

元ネタは Adobe MAX 2008 の城戸さんのプレゼンです。ビデオの8割ぐらいの時間から紹介されている「ビットマップ化しておく」というデモで矢印が沢山飛んでいたので、実際どのくらい高速化するか試してみました。

Adobe MAX 2008 の城戸さんのプレゼン

BitmapData を配列に格納するスクリプトを書くのも手間がかかるので、Flashのすべてにこれを適用していたら工数が膨らんでしまいます。ようは Flash のパフォーマンス低下のボトルネックとなっている部分を特定し、それがプレレンダリングで解決するようなものなら使ってみるといいといった感じでしょうか。AS3で試してますが、BitmapData は Flash Player 8 以上で使えるので AS2 でもこの方法は使えます。高速化手法として覚えておきたいですね。

パーティクル祭の関連記事もどうぞ!

投稿者 : 池田 泰延

BookMark

ブックマークはこちらからどうぞ。

このエントリーをはてなブックマークに追加

Comment/Trackback 2件