Stage3D(コードネーム Molehill [1])は、Flashゲームやアプリケーション内でGPUアクセラレーションを使用してインタラクティブな3DグラフィックスをレンダリングするためのAdobe Flash Player APIです。ActionScript 3で記述されたFlash PlayerまたはAIRアプリケーションは、3DグラフィックスをレンダリングするためにStage3Dを使用することができ、[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がリリースされ、Stage3Dコンテンツ用の長方形(正方形ではない)テクスチャマップのサポートに加えて、最大テクスチャマップサイズが4096 x 4096に増加しました。これにより、テクスチャマップの詳細度が向上し、より大きなテクスチャアトラスが作成できるようになり、パフォーマンスが向上しました。[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 Texture Format) - 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互換コードに変換できます。
参照
参考文献
- ^ abcde Joseph Labrecque (2011). Flash Player 11 の新機能. O'Reilly Media, Inc. p. 17. ISBN 978-1-4493-1110-0。
- ^ ab Adobe プレミアム機能 for Flash Player、Flash Player Dev Center、Adobe
- ^ ab 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。
- ^ abc 「Stage3D vs WebGL パフォーマンス — Airtight Interactive」。Airtightinteractive.com。2011 年 10 月 28 日。2014年 8 月 4 日閲覧。
- ^ Joseph Labrecque (2011). Adobe AIR 3 の新機能. O'Reilly Media, Inc. pp. 17–26. ISBN 978-1-4493-1108-7。
- ^ Remi Arnaud (2011)。「Web ブラウザでの 3D」。Eric Lengyel (編)。Game Engine Gems 2。CRC Press。pp. 207–212。ISBN 978-1-56881-437-7。
- ^ ab クリステル・カイティラ (2011)。Adobe Flash 11 Stage3D (Molehill) ゲーム プログラミング ビギナーズ ガイド。パックト出版株式会社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。
- ^ ab Thibault Imbert (2012). Introducing Starling . O'Reilly Media, Inc. 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日閲覧。
- ^ abcde Adobe Flash ロードマップ、Adobe
- ^ ab そしてプレミアム機能が登場 2015-02-05 にWayback Machineにアーカイブ、ASV Guy Blog
- ^ アップデート: Flash Player、Adobe AIR、FP のプレミアム機能に関するブログ
- ^ Imbert, Thibault. 「Flash Player 11.4/AIR 3.4 ベータ版のご紹介!」ByteArray.
- ^ “Stage3D”. scrap.mit.edu . 2014年8月5日閲覧。
- ^ Adobe Flash Player 11.8 - バグ 3591185: Pixel Bender シェーダーのパフォーマンスが FP11.8 で大幅に低下。「NeverFix」としてクローズ。2014 年 4 月 22 日にWayback Machineにアーカイブされました。
- ^ 「Stage3D 圧縮テクスチャ - ATF SDK の紹介 - ByteArray.org」 bytearray.org . 2014 年 8 月 4 日閲覧。
- ^ abcde Adobe Scout を使い始める、Adobe Developer Connection
- ^ abcde AGAL とは、Adobe Developer Connection です
- ^ Stage3D でより滑らかなテクスチャを実現するミップマッピング、Adobe Developer Connection
- ^ セッション: フラッシュを最大限に! Silent Hunter Online の高性能 3D グラフィックス アーカイブ済み 2021-08-28 at the Wayback Machine、GDC Europe 2013
- ^ ab FLSL 2023-01-14にWayback Machineにアーカイブ、Flare3D Wiki
- ^ HLAGは現在アルファ版です。2022年7月2日にWayback Machineにアーカイブされました。HLAGツールのウェブサイト
- ^ Crytek、Silent Hunter Online が GDC Europe 2013 の最新追加について語る、Gamasutra、「C++ コンソール レンダリング エンジンを Actionscript/Stage3D を使用して Adobe Flash に組み込み、海洋レンダリングなどのグラフィック効果に 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日閲覧。
