Stage3Dコードネーム: Molehill [ 1 ])は、Flashゲームやアプリケーション内でGPUアクセラレーションを用いてインタラクティブな3DグラフィックスをレンダリングするためのAdobe Flash Player APIです。ActionScript 3で記述されたFlash PlayerまたはAIRアプリケーションは、Stage3Dを使用して3Dグラフィックスをレンダリングすることができ、[ 2 ]、Windows、Mac OS X、Linux、Apple iOS、Google Androidでネイティブに動作します。[ 3 ] Stage3Dは、 WebGLと目的や設計が似ています[ 4 ] [ 5 ]

Stage3Dは、Flashアプリケーションにおける3DコンテンツのGPUアクセラレーションを容易にするために、Adobe Flash Player 11.0およびAIR 3.0で導入されました。 [ 1 ] [ 6 ] Flash Player 10以前では、3D Flashアプリケーションは3Dグラフィックを完全にCPUでレンダリングする必要がありました。Flash Player 10は、Pixel Benderと呼ばれるAPIで、マテリアルに対する限定的なGPUアクセラレーションをサポートしていました[ 1 ] [ 7 ]

Stage3DのGPUシェーダーはAdobe Graphics Assembly Language(AGAL)で表現されます。[ 8 ]:57  [ 9 ] Stage3Dオブジェクトは従来のSWFレンダリングモデルとは異なり、SWFのディスプレイリストに追加することはできません。代わりにActionScriptを使用してインスタンス化する必要があります[ 1 ] [ 8 ]:25 

Stage3Dは低レベルのライブラリであり、直接使うには面倒な場合があるので、その高いパフォーマンスの恩恵を受けるために、いくつかの高レベルの3Dおよび2Dライブラリがその上に構築されてきました。それを使用しているライブラリとゲームエンジンの不完全なリストには、 Unreal Engine 3、[ 10 ] [ 11 ] Away3D 4、[ 5 ] CopperCube[ 12 ] Flare3D[ 13 ] Starling[ 14 ] : vii  ND2DまたはAdobe LabsのProsceniumが含まれます。[ 15 ]同様に、WebGL 3Dアプリケーションは、これらに似た高レベルのライブラリであるthree.jsを使用して構築できます。 [ 5 ] Away3DとStarlingは、Adobe Gaming SDKの公式コンポーネントとして命名されました。[ 16 ] [ 17 ]

歴史

[編集]

2011年にFlash Player 11がリリースされ、それと同時にStage3Dの最初のバージョンもリリースされました。これにより、Microsoft WindowsやMac OS Xなどのデスクトッププラットフォーム上で、FlashアプリケーションやゲームのGPUアクセラレーションによる3Dレンダリングが可能になりました。[ 1 ]

2012年3月、Flash Player 11.2がリリースされ、AndroidおよびiOSプラットフォームでStage3D/GPUのサポートが可能になりました。Stage3D APIを利用したゲームは、これらのモバイルプラットフォーム上で変更なく動作します。[ 18 ]

2012年6月にFlash Player 11.3がリリースされ、Stage3Dテクスチャマップのプログレッシブストリーミングが可能になり、Stage3Dを利用したゲームやアプリケーションのパフォーマンスと起動時間が向上しました。[ 18 ]

2012年8月にはFlash Player 11.4がリリースされ、サポートされるハードウェアアクセラレーションビデオカードの数が2006に増加し、Stage3D圧縮テクスチャのアルファチャンネルが可能になった。[ 18 ]

2012年3月、AdobeはStage3DがFlash Playerのプレミアム機能の一部となり(Flash Playerバージョン11.2から)、開発者に完全に無料で提供されるのではなく、収益分配スキームに基づいて提供されることを発表しました。[ 19 ] [ 20 ] Flashコミュニティの著名なメンバーの多くは、この変更を「スピード税」と呼んで反対しました。[ 19 ]

2013年1月、Adobeはすべてのプレミアム機能を一般公開し、開発者や出版社からのライセンスやロイヤリティを必要とせずにFlashアプリケーションで自由に使用できるようになりました。[ 2 ]

2012年9月、Flash Player 11.4がリリースされ、ゲームはStage3Dのすべての機能をサポートしていない古いグラフィックチップを含む「制約付きプロファイル」をターゲットにできるようになりました。[ 21 ]

2013年4月にはFlash Player 11.7がリリースされ、Stage3Dコンテンツの16ビットテクスチャマップをサポートし、メモリ使用量の削減とメモリ管理の改善が可能になりました。[ 18 ]

2013年7月、Flash Player 11.8がリリースされ、テクスチャマップの最大サイズが4096 x 4096に拡大されたほか、Stage3Dコンテンツ用の長方形(正方形ではない)テクスチャマップもサポートされました。これにより、テクスチャマップのディテールが向上し、より大きなテクスチャアトラスを作成できるようになり、パフォーマンスが向上しました。[ 18 ]

2014年、Flash Player 11.8以降、Pixel BenderスクリプトのGPUアクセラレーションが削除されました。Pixel Benderは、CPUベースの高性能画像処理フィルタを作成するための古い技術でした。このため、MITのScratchなど、資金力の乏しい多くのプロジェクトが混乱に陥り、アプリケーションを迅速に再コーディングするための人材を確保できなくなりました。[ 22 ] [ 23 ]

特徴

[編集]

Stage3D は次のコンポーネントで構成されています。

Stage3D は次のコンポーネントによってサポートされています。

  • XC API - 高速メモリ操作オペコード ( 「Alchemy」と呼ばれる) と Stage3D API で構成される、Flash Player の「プレミアム機能」。
  • CrossBridge - OpenGL ベースの 3D ゲームまたはゲーム エンジンをコンパイルして Flash Player 内で実行するためのクロスコンパイル ツールキット。
  • Adobe Scout - デスクトップまたはモバイルで実行されるFlashコンテンツ用のビジュアルプロファイラー。Scoutは、以下の統合機能により、Stage3Dコンテンツの詳細なプロファイリングを可能にします。[ 25 ]
    • Stage3Dプレビュー - 実行されたStage3Dコンテンツの現在のバックバッファを表示する[ 25 ]
    • Stage3Dレコーディング - Flashコンテンツによって実行されたすべてのStage3Dコマンドをキャプチャし、実行されたコマンドを再生/ステップ実行します[ 25 ]
    • GPUメモリ使用量 - テクスチャメモリ使用量のプロファイルとリアルタイムの内訳[ 25 ]
    • Stage3Dプログラムエディタ - 記録されたStage3Dコマンドをインタラクティブに修正し、レンダリングにどのような影響を与えるかを確認します。各描画呼び出しで実行される頂点プログラムとフラグメントプログラムのAGALコードを編集します。[ 25 ]

アガル

[編集]

Adobe Graphics Assembly Language (AGAL) は、GPUシェーダーを記述するためのアセンブリ言語です。[ 26 ] AGAL は、すべてのプラットフォームに統一されたシェーダー言語を提供するために Adob​​e によって発明されました。[ 26 ] AGAL プログラムは、低レベルのオペコードレジスタを使用して手動で記述されます。[ 26 ] AGAL プログラムはバイトコードにコンパイルされ、Flash SWF ムービーに埋め込まれます。[ 26 ]この AGAL バイトコードは、プラットフォームに応じて、Adobe Flash PlayerによってOpenGL GLSL シェーダーDirectX HLSL シェーダーに自動的にコンパイルされます。 [ 26 ]

AGALを使用すると、開発者はGPU上で3Dモデルを変換するシェーダー(頂点シェーダー)と、GPU上で複雑な動的照明効果をレンダリングするシェーダー(ピクセルシェーダー)を作成できます。AGALでは、ミップマッピングを使用した高品質のテクスチャレンダリングも可能です[ 27 ] AGALは、 Away3DFlare3DなどのFlashゲームエンジンでさまざまな効果のために広く使用されています。AGALは、動的照明ハイダイナミックレンジ(HDR)、アルファマスキング、マルチパスレンダリング、ディスプレイスメントマッピング環境マッピングを提供するためによく使用されます[ 28 ] [ 29 ] Flare3Dは、シェーダープログラムの作成を容易にするFLSL(FLare3D Shader Language)と呼ばれる独自のシェーダー言語でAGALを拡張しています。[ 29 ] HLAGは、AGALにコンパイルされる高水準シェーダー言語のもう1つの例です。[ 30 ]

C++ 3DビデオゲームをAdobe Flash Playerで再生できるように移植する場合、開発者は従来のHLSLおよびGLSLシェーダをAGALに変換する必要があります。[ 31 ] C ++ビデオゲームのコードはCrossBridgeを使用してFlash互換コードに変換できます

参照

[編集]

参考文献

[編集]
  1. ^ a b c d e Joseph Labrecque (2011). What's New in Flash Player 11 . O'Reilly Media, Inc. p. 17. ISBN 978-1-4493-1110-0
  2. ^ a b Adob​​e Flash Player プレミアム機能、Flash Player Dev Center、Adobe
  3. ^ a b Stage3D 非対応チップセット、ドライバー、Flash Player 11、AIR 3、Adobe ヘルプ
  4. ^ Matt Fisher (2013). HTML5 for Flash Developers . Packt Publishing Ltd. § Stage3D versus WebGL, p. 91. ISBN 978-1-84969-333-2
  5. ^ a b c 「Stage3D vs WebGL Performance — Airtight Interactive」 . Airtightinteractive.com. 2011年10月28日. 2014年8月4日閲覧
  6. ^ Joseph Labrecque (2011). What's New in Adob​​e AIR 3 . O'Reilly Media, Inc. pp.  17– 26. ISBN 978-1-4493-1108-7
  7. ^ レミ・アルノー (2011). 「Webブラウザで3D」. エリック・レンジェル編. 『ゲームエンジン・ジェムズ2』 . CRC Press. pp.  207– 212. ISBN 978-1-56881-437-7
  8. ^ a b Christer Kaitila (2011). Adob​​e Flash 11 Stage3D (Molehill) ゲームプログラミング初心者ガイド. Packt Publishing Ltd. ISBN 978-1-84969-169-7
  9. ^ 「AGALとは | Adob​​e Developer Connection」 Adobe.com、2011年10月10日。 2014年8月4日閲覧
  10. ^ Wagner James Au (2012). 『ゲームデザインの秘密』 John Wiley & Sons. p. 130. ISBN 978-1-118-46391-8
  11. ^ 「Adobe Flash 11、ブラウザゲームの向上にUnreal Engine 3を採用 | The Verge」 theverge.com、2011年10月7日。 2014年8月4日閲覧
  12. ^ 「ツールスポットライト:CopperCube 4.0」 . MCV . evelop-online.net. 2014年5月28日. 2014年9月22日閲覧
  13. ^ Keith Gladstien (2013). 『ソーシャル、モバイル、3Dの世界におけるFlashゲーム開発』 Cengage Learning. pp.  383– 421. ISBN 978-1-4354-6021-8
  14. ^ a b ティボー・アンベール (2012)。スターリングのご紹介です。オライリー・メディア社ISBN 978-1-4493-2089-8
  15. ^ Rex van der Spuy (2012). 『ActionScript 3.0による基礎ゲームデザイン』 Apress. p. 641. ISBN 978-1-4302-3993-2
  16. ^ Thibault Imbert (2012年12月4日)ゲーム開発ツールの紹介 (Gaming SDK、Adobe Scout、FlasCC)
  17. ^ 「Adobe Gaming SDK」 . creative.adobe.com . 2014年8月4日閲覧。
  18. ^ a b c d e Adob​​e Flash ロードマップ、Adobe
  19. ^ a b そしてプレミアム機能が登場 Archived 2015-02-05 at the Wayback Machine , ASV Guy Blog
  20. ^ アップデート: Flash Player、Adobe AIR、FP のプレミアム機能に関するブログ
  21. ^ Imbert, Thibault. 「Flash Player 11.4/AIR 3.4 ベータ版のご紹介!」 ByteArray.
  22. ^ "Stage3D" . scratch.mit.edu . 2014年8月5日閲覧。
  23. ^ Adob​​e Flash Player 11.8 - バグ 3591185: Pixel Bender シェーダーのパフォーマンスが FP11.8 で大幅に低下。「NeverFix」としてクローズ。Wayback Machineに 2014-04-22 でアーカイブ。
  24. ^ 「Stage3D圧縮テクスチャ - ATF SDKの紹介 - ByteArray.org」 bytearray.org . 2014年8月4日閲覧
  25. ^ a b c d e Adob​​e Scout を使い始める、Adobe Developer Connection
  26. ^ a b c d e AGALとは、Adobe Developer Connection
  27. ^ Stage3D でより滑らかなテクスチャを実現するミップマッピング、Adobe Developer Connection
  28. ^ セッション: Flash を最大限に活かす! Silent Hunter Online の高性能 3D グラフィックス Archived 2021-08-28 at the Wayback Machine , GDC Europe 2013
  29. ^ a b FLSL Archived 2023-01-14 at the Wayback Machine , Flare3D Wiki
  30. ^ HLAGは現在アルファ版です。 2022年7月2日に Wayback Machineアーカイブされています。HLAGツールのウェブサイト
  31. ^ Crytek、「Silent Hunter Online が GDC Europe 2013 の最終追加について語る」 Gamasutra「C++ コンソール レンダリング エンジンを Adob​​e Flash に Actionscript/Stage3D で組み込み、海洋レンダリングなどのグラフィック効果には AGAL を使用する」
[編集]