今回は Optimizing Performance for the Flash Platform から、描画パフォーマンスに関連する Tips です。
StageQuality
- デバイスは画面サイズが小さいため、イメージの品質の差がデスクトップ環境に比べて分かりにくい
- デバイスの画面は解像度が高いため、アンチエイリアス無しでも画像の質はあまり低下しない
- そのため、デバイスでは通常 StageQuality は MEDIUM で十分
StageQuality.LOW: アンチエイリアスは一切行われない、もっとも高速
StageQuality.MEDIUM: 一部アンチエイリアスが行われるがビットマップは対象外
StageQuality.HIGH: アニメーションされるビットマップのみアンチエイリアスされない
StageQuality.BEST: すべてのビットマップがアンチエイリアスされる、もっとも低速 - テキストのアンチエイリアスを "読みやすさ優先" にすると、StageQuality の値に係わらず、常にテキストはアンチエイリアス処理される
アルファブレンド
- アルファ属性を設定した場合、アルファブレンドを必要とするエフェクトの使用は避ける
- アルファ属性の使用も必要なときのみにするべき
ビットマップキャッシュ
- ビットマップキャッシュはベクター画像を内部的にビットマップデータに変換してから描画する機能、いったん作成されたビットマップはメモリ上にキャッシュされ再利用される
- ビットマップキャッシュ機能を利用するには、cashAsBitmap 属性に true を設定する
- 複雑なベクター図形やテキストの描画に効果がある
- 図形が変化するごとにビットマップを生成する、そのため頻繁に変更される図形は、ビットマップキャッシュするとかえって遅くなる
- ビットマップを保持するため、メモリをたくさん必要とする
- 図形の位置が変化してもキャッシュされたビットマップは再利用されるが、回転したり大きさを変えるとビットマップは再作成される
- アルファの値が変わった場合もビットマップは再作成される
- AIR と Packager for iPhone では、回転や大きさの変更でもキャッシュされたビットマップが使えるよう cashAsBitmapMatrix 属性が提供されている
- cashAsBitmap = true のとき、opaqueBackground 属性を設定すると、さらに処理を高速化できる
- cashAsBitmap は個々のオブジェクトに設定した方が、親オブジェクトに設定するよりも、使用するメモリ量を削減できるケースが多い (画面上で閉める領域の大きさに比例する)
- フィルターは自動的に cashAsBitmap = true を設定する。これによりパフォーマンスに影響が出る
GPU
こちらの記事をご参照ください Flash Player 10.1 のハードウェアを利用した描画機能 (グラフィックス編)
コメントする