goo

スマートフォンでDN2D使うと重い・・・

ND2DとBitmapでブロックの描写の検証してみた結果、次のようになりました。
使用した機種はN-06C (GPUはAMD製 Adreno 205で4100万ポリゴン/秒の性能)。

Bitmapを通常の描写で維持したもの
5000個 : 25~32fps

一つ一つにポリゴンを使い、GPUで書きだしたもの
5000個(10000Triangle): errer
4000個(8000Triangle) : 4fps
3000個(6000Triangle) : 5fps
2000個(4000Triangle) : 8fps
1000個(2000Triangle) : 14fps

N-06CのGPU演算性能は、大体32000Triangle/s のようですね。
60fpsに収めるなら、533Triangleに収める必要が・・・。
思ったよりポリゴン数を使えないようです。

しかし、GPUだと全画面サイズのポリゴンを並べても
大きく速度が低下することがないということがわかりました。
また、タッチパネルを押した時の反応速度が低下しにくいようです。

※以下はタッチパネル操作時
Bitmapを通常の描写で維持したもの
5000個 : 8fps

一つ一つにポリゴンを使い、GPUで書きだしたもの
5000個 : errer
4000個 : 4fps
3000個 : 4fps
2000個 : 6~7fps
1000個 : 14fps

細かい処理をCPUに任せて、大きなイメージの合成が必要な時だけ
GPUを使うのが最も効率がよさそうです。
また、最終的な表示としてただ書き出すだけでも効率が良くなりそう。

また、PCでもやってみたところ、表示限界は5000個程度でした。
PCでは、グラフィックボードの性能の限界が大きいものの、
AS3のメモリ256MB制限にひっかかり、つまずいたものと思います。

しかも、4000個で18fpsと、思いの外低速でした。
約14万4000Triangle/sという計算になりますね。
ND2Dは、PCでも1000オブジェクト程度までしか実用的ではないのですね・・・。

本格的な3Dのライブラリだと、18万ポリゴンを60Fps表示するものもあるので、
(と言うことは、なんと約1080万ポリゴン/秒!! しかし、私のPCで使っているHD5670の性能は 7億7500万 ポリゴン/秒(Xbox360超)なので、著しく残念な結果ということに。)
今回検証に使ったND2D及びStage3Dの性能の向上を期待したいです。
コメント ( 3 ) | Trackback ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする