Flash Player 11 の GPU レンダリング機能 (Stage3D) をつかって従来の DisplayObject を高速化してみようなフレームワーク、Starling Framework。どんぐらい変わるのかのベンチマークっぽいこと(どこかでみたことのあるアレ)をしてみたのだけど、逆に遅い。
- exp01: Starling Framework つかったやつ。CPU 使用率 100% こえる。30 fps いくかいかないか。ふらふら。
- exp02: BitmapData.copyPixel つかったやつ。CPU 使用率 30% ぐらい。もちろん、30 fps コマ落ちなし。
- ソースとか。
プロファイルしてみたところ、VertexData の更新が負荷高いぽいので、まあ、使い方がアレなんだろうなー、でも、こういうのって GPU 得意そうなんだけど。
・・・
9/28 12:00 追記:別の Stage3D 用 2D フレームワーク(ややこしい)ND2D で組んでみたら、すげえ軽くなった。
I’m testing newly released framework which enables ordinary DisplayObject to render much faster, called Starling Framework.
This is very simple benchmark using Texture Atlas (Sprite Sheet) but somehow it was so slow…
- exp01: Using Starling Framework. Load average is always over 100%. 28~30 fps.
- exp02: Using BitmapData.copyPixel. Load average is about 30%. Keep 30 fps.
- Source code.
As result of profiling, vertex data update part is too heavy. Is my usage wrong? ;-(
—
Update: I tried another framework ND2D and it’s quite faster than above. it rocks!
- exp03: Using ND2D. Load average is about 15%!
- Source code.
exp3 with fp11 tells me that I don’t have fp installed )8
Same issue for the exp03 =\
うちの環境だと exp02 >>>>> exp01 ≒ exp03 でStage3Dの利点を感じられなかった(>3<)
One little optimisation you coul do in the Starling example is to reuse the same textures for all your MovieClips > I think it would save a lot of process and memory !
Maybe you should try this :
Yes, Maru is right.
> valyard, focus
I forgot to upload swfobject, please try it again.
> alumican_net
たぶんグラフィックカードが対応してないとかでソフトウエアレンダリングなってるんじゃないかしら。trace(context3D.driverInfo) してみるよろし。
> Maru, Thibault
I tried but couldn’t find any difference…
TextureAtlas.getTexture returns just Vector of texture references, so it would not use a lot of memory I think.
[…] Saqoosha :: Starling Framework vs BitmapData.copyPixels […]