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でシェアする

壊リス・壊 を Flash Player 11.0 向けに魔改造・・・予定

いつも、スペックが低い端末の筆頭として、
スマートフォンで壊リス・壊の作動確認をしているのですが、
タッチパネルに触れたりすると、なかなかスムーズに動きません。

スマートフォン同士だと、RTMFPの通信が確実に通るので、
スマートフォンへの移植は必ずやっておきたいことなのですが、
現状では5人対戦でカクカク、二人対戦でも無理です。

そこで、次のAir や Flash Player11 の新しい機能である
Stage3D でさらなる高速化を目指すことにしました。

壊リス・壊の内部構造的には、

・グラフィック
 (表示サイド・バッファサイド)
・ゲーム本体
 (データサイド・イベントサイド・通信サイド)

の5つに分かれており、Stage3Dを適用する際は
表示サイドの完全入れ替えとバッファサイドの拡張で済みます。
高度な機能満載の ND2Dライブラリ に置き換えることでどうにかできそうです。

環境構築の一環として、ND2DのデモをAndroid向けに書きだしてみましたので、
Stage3D で 高速化の一歩 まずはライブラリ選び の記事をお読みください。
コメント ( 0 ) | Trackback ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Stage3D で 高速化の一歩 まずはライブラリ選び

Flash Player 11のパブリッシュ設定を追加してから、
すっかり Stage3D の魅力に取りつかれてしまいました。

Stage3D って何? って方はAdobeの資料を見るといいよ。

で、今作っている奴に一番合いそうなライブラリを探していたところ、
ND2Dというライブラリを発見しました。
ND2Dの公式サイトにデモとか色々載っています。

とりあえず、Android向けでも使えないかなと思いまして、
公式のデモを改造してAndoroid向けに仕立ててみました。

ND2D デモ (Android用改造済み)
※スペースの代わりにメニューボタンで切り替え出来ます。

なお、現状のAir for Androidでは、Stage3Dはサポートされていません。
よって、正式対応版である次のバージョンの Air 3.2(ベータ版)が必要です。

とりあえず、デモを走らせてパフォーマンスを確認している段階ですので、
使い勝手とか、苦労している点とか、設定方法とかは、後ほど。
コメント ( 0 ) | Trackback ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Flash CS5 で Flash Player 11 向け swf を書き出すために。

Flash Player 11が登場してから結構立ちますが、


Flash Professional CS5 & CS5.5 に Flash Player 11 設定を追加する MXP - akihiro kamijo


というサイトを見つけました。

Stage3Dの高速性を取り入れたいと思っていたので、
ちょうど渡りに船です。ありがたいです。

ただ、これだけだと Air 3.0 向けに対応できません。
色々試した結果、CS5でもAir3.0を使う方法があったので、
"Flash CS5" で "Air 2.6 以降" を使うためのメモ
に、その方法の リンク と アドバイス を載せました。
コメント ( 0 ) | Trackback ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

"Flash CS5" で "Air 2.6 以降" を使うためのメモ

Adobe Flash CS5.5 Pro が出てから久しいですが、
CS6待ちなどで、Adobe Flash CS5 Pro から更新していない人も多いと思います。

僕も CS6待ち で CS5 → CS5.5 に更新していないのですが、
Stage3D を Andoroid端末 で使うために、Air 3.2 が必要になりました。
しかし、CS5では、Air 2.5 までしか使えません。

一般的なやり方としては、FlashDevelopなどの外部ツールに最新のFlexをあわせて、
Flash CS5 で作った MovieClip を用いて統合するなんてやり方が主流だったりします。
しかし、迷路のような入り組んだ構造のプロジェクトの場合、そうはいきません。

そこで、CS5でAirの最新版を使えないかとググっていたところ、
http://forum.starling-framework.org/topic/publish-for-mobile-from-cs5-ide
を経由して、
http://blog.prevail.co.nz/2011/06/21/overlaying-air2-7-in-flash-cs5/
というサイトを発見しました。

上のサイトでは、Air 2.7 を使う前提での解説になっていますが、
Air 2.7 の代わりに、 Air 3.2 を使ってもうまく作動します。
注意が必要なのは、設定ファイルも3.2向けに書きなおすことですね。


ただ、日本語版の場合、これらのやり方だけでは不十分で、
日本語版CS5.5体験版をインストールの上、
[en_US]のフォルダーではなく、[ja_JP]のフォルダに読み替えが必要です。

また、このサイトのやり方では、Air for Android の設定の一部が表示されません。
[C:\Program Files\Adobe\Adobe Flash CS5.5\ja_JP\Configuration]にある、
[Android]フォルダーもコピーしないと正常に使えません。

また、相性の問題で、過去に紹介した
CS5向けAir2.5 + Air for Android のベータ版拡張パック
を同時に使うことができません。

とりあえず、これで壊リス・壊をAndroid向けにリリースできそうです。
コメント ( 0 ) | Trackback ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする