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 は次のコンポーネントで構成されています。
- 統合API -テクスチャメモリ、頂点シェーディング、ピクセルシェーディング、メッシュレンダリングを管理するための統合ActionScript 3 API。OpenGL (Mac OS XおよびLinux)およびDirectX(Microsoft Windows)を使用して透過的に実行されます。
- 高速GPUレンダリング - NVidia、AMD、Intel製のグラフィックカードの統合サポート、 [ 3 ]互換性のないグラフィックカードのブラックリスト。
- 高速化された CPU レンダリング -グラフィック カードがない、または互換性のないシステム向けに、SwiftShaderを使用した統合ソフトウェア レンダラー フォールバック。
- AGAL (Adobe Graphics Assembly Language) - Flash Player によってOpenGL GLSL シェーダーおよびDirectX HLSL シェーダーに変換できるシェーダー(GPU 上で実行されるプログラム) を記述するための言語。
- ATF(Adobeテクスチャフォーマット) - WindowsやMacOSのDXT 、 iOSのPVRTCなど、適切なプラットフォーム固有のテクスチャフォーマットに変換できるテクスチャフォーマット。 [ 14 ]:47–48 [ 24 ]
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 は、すべてのプラットフォームに統一されたシェーダー言語を提供するために Adobe によって発明されました。[ 26 ] AGAL プログラムは、低レベルのオペコードとレジスタを使用して手動で記述されます。[ 26 ] AGAL プログラムはバイトコードにコンパイルされ、Flash SWF ムービーに埋め込まれます。[ 26 ]この AGAL バイトコードは、プラットフォームに応じて、Adobe Flash PlayerによってOpenGL GLSL シェーダーとDirectX HLSL シェーダーに自動的にコンパイルされます。 [ 26 ]
AGALを使用すると、開発者はGPU上で3Dモデルを変換するシェーダー(頂点シェーダー)と、GPU上で複雑な動的照明効果をレンダリングするシェーダー(ピクセルシェーダー)を作成できます。AGALでは、ミップマッピングを使用した高品質のテクスチャレンダリングも可能です。[ 27 ] AGALは、 Away3DやFlare3Dなどの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互換コードに変換できます。
参照
[編集]参考文献
[編集]- ^ 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。
- ^ a b Adobe Flash Player プレミアム機能、Flash Player Dev Center、Adobe
- ^ a b Stage3D 非対応チップセット、ドライバー、Flash Player 11、AIR 3、Adobe ヘルプ
- ^ Matt Fisher (2013). HTML5 for Flash Developers . Packt Publishing Ltd. § Stage3D versus WebGL, p. 91. ISBN 978-1-84969-333-2。
- ^ a b c 「Stage3D vs WebGL Performance — Airtight Interactive」 . Airtightinteractive.com. 2011年10月28日. 2014年8月4日閲覧。
- ^ Joseph Labrecque (2011). What's New in Adobe AIR 3 . O'Reilly Media, Inc. pp. 17– 26. ISBN 978-1-4493-1108-7。
- ^ レミ・アルノー (2011). 「Webブラウザで3D」. エリック・レンジェル編. 『ゲームエンジン・ジェムズ2』 . CRC Press. pp. 207– 212. ISBN 978-1-56881-437-7。
- ^ a b Christer Kaitila (2011). Adobe Flash 11 Stage3D (Molehill) ゲームプログラミング初心者ガイド. Packt Publishing Ltd. ISBN 978-1-84969-169-7。
- ^ 「AGALとは | Adobe Developer Connection」 Adobe.com、2011年10月10日。 2014年8月4日閲覧。
- ^ Wagner James Au (2012). 『ゲームデザインの秘密』 John Wiley & Sons. p. 130. ISBN 978-1-118-46391-8。
- ^ 「Adobe Flash 11、ブラウザゲームの向上にUnreal Engine 3を採用 | The Verge」 theverge.com、2011年10月7日。 2014年8月4日閲覧。
- ^ 「ツールスポットライト:CopperCube 4.0」 . MCV . evelop-online.net. 2014年5月28日. 2014年9月22日閲覧。
- ^ Keith Gladstien (2013). 『ソーシャル、モバイル、3Dの世界におけるFlashゲーム開発』 Cengage Learning. pp. 383– 421. ISBN 978-1-4354-6021-8。
- ^ a b ティボー・アンベール (2012)。スターリングのご紹介です。オライリー・メディア社ISBN 978-1-4493-2089-8。
- ^ Rex van der Spuy (2012). 『ActionScript 3.0による基礎ゲームデザイン』 Apress. p. 641. ISBN 978-1-4302-3993-2。
- ^ Thibault Imbert (2012年12月4日)ゲーム開発ツールの紹介 (Gaming SDK、Adobe Scout、FlasCC)
- ^ 「Adobe Gaming SDK」 . creative.adobe.com . 2014年8月4日閲覧。
- ^ a b c d e Adobe Flash ロードマップ、Adobe
- ^ a b そしてプレミアム機能が登場 Archived 2015-02-05 at the Wayback Machine , ASV Guy Blog
- ^ アップデート: Flash Player、Adobe AIR、FP のプレミアム機能に関するブログ
- ^ Imbert, Thibault. 「Flash Player 11.4/AIR 3.4 ベータ版のご紹介!」 ByteArray.
- ^ "Stage3D" . scratch.mit.edu . 2014年8月5日閲覧。
- ^ Adobe Flash Player 11.8 - バグ 3591185: Pixel Bender シェーダーのパフォーマンスが FP11.8 で大幅に低下。「NeverFix」としてクローズ。Wayback Machineに 2014-04-22 でアーカイブ。
- ^ 「Stage3D圧縮テクスチャ - ATF SDKの紹介 - ByteArray.org」 bytearray.org . 2014年8月4日閲覧。
- ^ a b c d e Adobe Scout を使い始める、Adobe Developer Connection
- ^ a b c d e AGALとは、Adobe Developer Connection
- ^ Stage3D でより滑らかなテクスチャを実現するミップマッピング、Adobe Developer Connection
- ^ セッション: Flash を最大限に活かす! Silent Hunter Online の高性能 3D グラフィックス Archived 2021-08-28 at the Wayback Machine , GDC Europe 2013
- ^ a b FLSL Archived 2023-01-14 at the Wayback Machine , Flare3D Wiki
- ^ HLAGは現在アルファ版です。 2022年7月2日に Wayback Machineにアーカイブされています。HLAGツールのウェブサイト
- ^ Crytek、「Silent Hunter Online が GDC Europe 2013 の最終追加について語る」、 Gamasutra、「C++ コンソール レンダリング エンジンを Adobe Flash に Actionscript/Stage3D で組み込み、海洋レンダリングなどのグラフィック効果には AGAL を使用する」
外部リンク
[編集]- Adobe Developer Connectionの Stage3D に関する記事
- 「Flashとビデオゲームのための3Dゲーム開発」 adobe.com 。 2014年8月4日閲覧。
- 「Stage3Dの仕組み」 adobe.com 2014年9月17日閲覧。
- 「Flare3DとStage3Dを使った3D Flashゲームの構築」 adobe.com 。 2014年9月17日閲覧。
- 「Away3D 4とStage 3Dを使った3Dゲームとアプリの作成」 adobe.com 。 2014年9月17日閲覧。
- 「AGALとは」 adobe.com 2014年9月17日閲覧。
- 「Flashゲームに3Dコンテンツを素早く簡単に追加する方法」 adobe.com 2014年9月17日閲覧。
- 「Starling 2Dフレームワークの紹介」 adobe.com 2014年9月17日閲覧。
- 「頂点シェーダーとフラグメントシェーダー」 adobe.com 2014年9月17日閲覧。
- 「Stage3Dでより滑らかなテクスチャを実現するミップマッピング」 adobe.com 2014年9月17日閲覧。
- 「Stage 3Dゲームエンジン」 adobe.com 2014年9月17日閲覧。
- 「Adobe Scoutを使い始める」 adobe.com 2014年9月17日閲覧。
- 「Flash C++コンパイラ(FlasCC)を使用したOpenGLゲームのコンパイル」 adobe.com 。 2014年9月17日閲覧。
- OpenGLおよびGLSLからの翻訳ツール:
- 「adobe/GLS3D · GitHub」 . github.com . 2014年8月4日閲覧。
- 「adobe/glsl2agal · GitHub」 . github.com . 2014年8月4日閲覧。