Flash Player 11のStage3Dに対応したAlternativa3D Ver.8を試してみた

Flashの3D エンジン「Alternativa3D (オルタナティバ 3D )」ですが最新版 Ver 8.x が Stage3D(Molehill) に対応しているというので、試してみました。Stage3D(Molehill) の GPU 利用により、Flash Player 9 & 10 でやっていた頃よりどのくらいのパフォーマンス向上が得られるのか気になるところです。

※以下のデモは全て Flash Player 11 と Stage3D 対応のグラフィックボードが必要になります。

Alternativa3D ver8.12 のデモ

Alternativa3Dを試してみる Part.06 : テンプレートを使ってデモを作成」の移植版。大量のモデリングデータを配置してもこのとおり抜群のパフォーマンス。なお、マウスドラッグでアングルを動かせます。

200個の立方体をランダムに配置。ライティングを適用しても全然処理負荷がかかっていません。

PV3DでStructure Synth的なビジュアルアート」の移植版。数年前に Papervision3D で試した時も結構パフォーマンスが良かったのですが、Alternativa3D Ver.8 に切り替えてさらに沢山のオブジェの配置が可能になり尾をさらに長くすることができました。

Molehill ファーストインプレッション」で作ったデモの移植版。Away3D Ver.4 (alpha版) だとプリミティブオブジェクトを大量に配置するとパフォーマンスが劇的に低下しましたが、Alternativa3D Ver.8 だとそんなことはありませんでした。

Papervision3D演出サンプルNo.04:細切れフォトグラフ」の移植版。パフォーマンス向上によりマス目の分割数を増やせると思ったのですが、意外と増やすことができなかった例です。

なお、Planeクラスについては 9ballsyndrome さんのブログからお借りしました。いつも Alternativa3D の有益な情報ありがとうございます。

便利なテンプレートファイル

Alternativa3Dを試してみる Part.05 : テンプレートを作成」で紹介したような、Alternativa3Dを簡単に始めるためのテンプレートクラスを作ってみました。デモ作成に自由にお使いくださいませ。

サンプルコード

package {
    import alternativa.engine3d.materials.FillMaterial;
    import alternativa.engine3d.primitives.Box;
    import org.libspark.alternativa3d.view.AlternativaTemplate;

    public class Main extends AlternativaTemplate {
        private var box:Box;

		// 初期化
        override protected function atInit():void {
            // マテリアルを作成
            var material:FillMaterial = new FillMaterial(0xFFFFFF, 0.5);
            // プリミティブを作成
            box = new Box(500, 500, 500, 5, 5, 5);
            box.setMaterialToAllSurfaces(material);
            scene.addChild(box);
        }

		// エンターフレーム
        override protected function atPreRender():void {
            // ボックスを回転(rotationプロパティはラジアン角)
            box.rotationY += 1 * Math.PI / 180;
            box.rotationZ += 1 * Math.PI / 180;
        }
    }
}

関連記事

投稿者 : 池田 泰延

BookMark

ブックマークはこちらからどうぞ。

このエントリーをはてなブックマークに追加

Comment/Trackback 5件

  • kiri より:

    いつも拝見させていただいてます。
    最近のflashはよくstage3Dを耳にしますが、デモなどもゲームのようでかなり敷居があがったように思います。

    ですが、今後stage3Dを学ぶにあたりstage3Dの恩恵を受けながら3Dを学ぶにはどういう手順を隔てたほうがいいんでしょうか?
    以前は少しpapervision3Dをやっていたのでaway3Dをまず勉強したほうがいいのかAlternativa3Dを学んだほうがいいのか・・・
    なんかstage3Dだけで3D表現は難しいと聞いたのでaway3D+stage3Dとかflare3d+stage3DとかAlternativa3D+stage3Dなどで対応したいと思いますが、それもまた選択股が多すぎて困ってます。

  • Yasu より:

    こんにちは、コメントありがとうございます。

    Stage3DをAGALから直で処理をするのはさすがに敷居 or 生産効率が懸念なので、やはりライブラリを併用して対応するのが良いと思います。ライブラリにもいくつか種類がありますが、Stage3D版においてはそれぞれの一長一短がはっきりしていないので、まだ判断は難しいところです。Adobe MAXではFlare3Dの開発者が冗談交じりにこんなことを言っていました。
    http://twitter.com/#!/spacelogue/status/121730636791820288 (@spacelogue さんの報告ツイートより)

    私の感触だと、Away3DのほうがPV3DとAPIが似ているがパフォーマンスがやや不安、Alternativa3Dは左手系座標が慣れないとつらい&意外と欲しいクラスが揃っていない、Flare3Dはコストが高い、Proscenium はAdobe謹製とはいえAPIが慣れないという感じです。

    じっくり触って比較していくのがいいかな、と思っています。

  • 4S より:

    Alternativa3D凄いですね。

    まだ情報が少ないので、ソースコード非常に参考になりました。本当にありがとうございます。

    そういえばAlternativa3D 8に関してこんな記事がありました。

    「Flash Player 11」と「AIR 3」の正式版がリリース。GPUを使った本格的な3Dゲームが開発可能に
    http://www.4gamer.net/games/032/G003263/20111013067/

    Flash Player11の描画能力向上によって今後ゲーム市場でFlashがブレイクしそうですね。
    ここまでFlashの技術があがるとver12とかになる頃には「Flash Player 専用の携帯ゲーム機」とかが登場するかもしれないですね。

    高度になった分開発の敷居が上がってしまう点も懸念されるのでライブラリとか、ソースコード充実すればいいなぁとか思っています。

    Flashの長所は開発のしやすさにあると思うので、その辺りもAdobeさんが頑張ってくれれば、Flashプラットフォーム凄く良くなりそうですね。

  • ニャ より:

    ねぎミク(MolehillMikus)の、ほっぺたのぐるぐるを
    透過させたくていろいろ試してみましたがうまくいきません。
      (material.diffuseMap = new BitmapT… の下に
       material.useDiffuseAlphaChannel = true;
       を追加など。)

    透過の方法を教えていただけると助かります。

  • 池田 泰延 より:

    お返事が遅くなり失礼しました。
    透過させたい場合は、それに該当するマテリアルの透過マップを指定する必要があります。基本的にデフォルトの機能で、Alternativa3Dだと自動的に処理することはできないので、読み込みのイベントを拾って自前で処理します。
    (この点、Away3Dだと自動的に透過処理を施してくれますが…