- 2009年11月15日 (日)
- Tweet
Alternativa3Dを試してみる Part.06 : テンプレートを使ってデモを作成
さきほど紹介したBasicTemplateの練習がてらFlashの3Dエンジン「Alternativa3D (オルタナティバ3D)」のデモをいくつか作ってみました。テンプレートを使うと短時間でデモを作れるので、こういった実験作を作るのには向いています。
※デモはRSSリーダーから見ると、再生サイズがおかしくなるので、ブログにアクセスしてから御覧ください。
羽ばたく蝶々
Papervision3D演出サンプルNo.01:羽ばたく蝶々の移植版。
※とある角度でテクスチャーが上下反転する謎のバグがあります。これってどうやって改善するのでしょう?
キューブ
Papervision3D演出サンプルNo.05:Shadow Cubesの移植。
触覚
PV3DでStructure Synth的なビジュアルアートの移植。Away3D版もあるので、各ライブラリのパフォーマンス比較をしてみるといいかも。
ネギミク
前にwonderflに投稿したやつ([Alternativa3D] Negi Miku)をBasicTemplateに突っ込んだだけ。後述の方法でパフォーマンスが上がっています。
なおドラッグしているときはFPSが落ち込みますが、静止状態になるとFPSが改善します。Alternativa3Dは内部的に表示変更の必要がない箇所はレンダリングの対象から外しているようです。
デモを作ってわかったAlternativa3Dのパフォーマンス
私は各種3Dライブラリを使ってパフォーマンスチェックを行っています。単純比較できないとはいえ、Alternativa3DはPapervision3Dよりも実行負荷が大きくFPSが思った通りでませんでした。BasicTempleteを作って分かったこととして改善方法としてScene3DクラスのsplitAnalysisプロパティーをfalseにしてやるとパフォーマンスが大きく改善します。
scene.splitAnalysis = false;
splitAnalysisプロパティーは、ポリゴンソートを正しく行うための精度の高い解析を有効にするかのフラグです。そもそもAlternativa3Dはビットマップ画像をテクスチャーとして貼り付けたときの歪みやオブジェクト交錯によるポリゴン欠けはほとんどでません。これはAlternativa3Dのロジックが、Papervision3DでいうとQuadrantRenderEngineを使い(参考記事)、preciseが全て有効になっている状態でレンダリングしているようなものだからです。なので、処理負荷としては非常に高く、FPSの数値が低くなります。
なお、現状のAlternativa3Dのポリゴンソートは上記の分割ソートのみとなります。将来のロードマップを見ると、バージョン7ではシンプルなZソートが実装される予定とのことです。Zソートのほうが精度は荒いですが処理速度面での優位性があり、全てを分割処理する現行バージョンよりは再生速度も向上することでしょう。
なおライブラリを触ってみた感触としては、Papervision3Dは初期化した段階では、最低限のロジックで動作するように作られているのに対し、Alternativa3Dは全てのロジックで動作するように作られているように思いました。なので、パフォーマンスを考慮してロジックをOFFにして引いていくような姿勢で作っていくことになるかと思います。
参考記事:Papervision3D vs. Alternativa3D in wipeout game test
投稿者 : 池田 泰延
BookMark
ブックマークはこちらからどうぞ。