問題タブ [stage3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flash - Direct3D または OpenGL アプリケーション内で Stage 3D を使用する
Stage 3D が登場する前は、フラッシュ レンダリング エンジンの出力をインプレース サイトでキャプチャし、それをテクスチャとして使用するだけでした。しかし、現在、ウィンドウなしでレンダリングできないように見えるStage 3Dがあります...
ダイレクト モードで実行されているフラッシュ コントロールの出力をキャプチャする方法はありますか? または、それらを提供されたサーフェスにレンダリングさせる方法はありますか?
flash - ScaleformとStage3d
FlashがStage3DとUnrealEngineのネイティブサポートの両方を備えていることを考えると、将来的にScaleform(現在の形式)が必要になるかどうかについて興味があります(つまり、少なくともUnreal Engineゲームに対して)。
私はこれを主に好奇心から求めています。UEがFlashでどのように機能するかについてあまり多くの情報を見つけることができなかったためです。また、私はScaleformを使用したことがなく、それを読んだだけで(Scaleformワークフロー)、stage3dについてはどこにも言及していません。
ここがScaleformについて質問するのに最適な場所かどうかはわかりませんが(Scaleformタグがないようです)、それらとstage3dの間に何らかのブリッジがあるはずです。
皆さんはどう思いますか?
ipad - ゲーム用 Stage3D - 利用可能なデバイス
AS3 を使用したタワー ディフェンス ゲームの開発を始めたところです。
- アイソメトリックエンジンが必要になります
- 多数のアニメーションを含む多数の異なるモデルが同時に画面に表示されるため、ここで一般的なブリッティング アルゴリズムは、必要なメモリ リソースに関してアプリケーションを強制終了する可能性があります。
- ゲーム アセットをより再利用できるようにするために (このゲームであろうと継続であろうと)、アセットは 3D ツールで作成され、スプライト シートにレンダリングされる可能性が高くなります。
主な対象デバイスはiPad(AIR)となります。公式ドキュメントを読んで、Stage3D は使えるものだという印象を受けました。質問は次のとおりです。
- Stage3D を使用して iPad 用の AIR アプリケーションを構築できますか (そして動作させることができますか)? 他のデバイスはどうですか?
- パフォーマンスと使いやすさの点で得られるものはありますか? (スプライト シートと直接 3D モデル、疑似 3D (アイソメ) と真の 3D)
考え、意見、経験?
アップデート:
パート 1: はい、できます。iPad および Android デバイス用。それが機能することは、厳格なローカルおよびデバイスベースのテストの対象となります
パート2:(検討中)
actionscript-3 - Flash Builder 4.6でモバイルアプリケーションにダイレクトレンダーモードを使用する*通常の*方法はありますか?
Flash Builder 4.6でStage3Dを使用してモバイルアプリ(air 3.2)を作成しようとしましたが、アプリケーションをデバッグしようとすると、Stage3Dが使用できないというエラーが発生しました。
bin-debug / MyApp.xmlを手動で編集し、機能するように設定<renderMode>direct</renderMode>
する必要がありました。
アプリのXMLを手動で編集せずに、Flash Builderで直接レンダリングモードを選択する通常の方法はありますか?
actionscript-3 - Flash での STL ファイルの読み取り
AS3 で .STL ファイルを読み取るライブラリはリリースされていますか? これは一般的な 3d ファイルのようですが、Stage3d で .STL ファイルを出力する方法はまだ見つかっていません。
flash - 異なる Program3D を混在させると、一部のオブジェクトがレンダリングされない
Stage3D を使用していると、予期せぬ事態に遭遇しました。オブジェクト用に 2 つの異なるシェーダー プログラムを作成しました。プログラムの 1 つは、テクスチャ ビットマップと UV データを使用するためのものです。もう 1 つは単純にカラー データを使用します。2 つのオブジェクトは非常に異なります。最終的には、無地の色と単純なレンダリング ロジックを使用していくつかのもの (方向線、ハイライトなど) を表示し、他のもの (実際のオブジェクト、背景など) をミップマップでレンダリングするなどです。前方へ。問題は、これら 2 つの非常に異なるシェーダー プログラムを使用すると、どちらか一方しか機能しないことです。したがって、色のみのオブジェクトがすべて表示されるか、テクスチャのみのオブジェクトがすべて表示されます。もちろん両方出してほしいです。
テクスチャ オブジェクトの agal コードは次のとおりです。
頂点シェーダー:
フラグメント シェーダー:
これらのオブジェクトのレンダリング コードは次のようになります。
これは、プレーンな色のオブジェクト(つまり、テクスチャなし)の agal コードです。
頂点シェーダー:
フラグメント シェーダー:
これらのオブジェクトのレンダリング コードは次のようになります。
私が理解できない何らかの理由で、さまざまなデータをさまざまなレジスタ インデックス (va) に割り当てているという事実が原因で、レンダリング プロシージャの 1 つが失敗しています。テクスチャ ループで最初にテクスチャ オブジェクトをレンダリングすると、色付きのオブジェクトがすべて消え、その逆も同様です。オブジェクトは最初のフレームで正しく表示されます。しかし、レンダリング ループが 2 回目に再生されるとすぐに、この予期しない動作が発生します。
以下を追加してカラーオブジェクトのレンダリングコードを変更すると、次のことがわかりました。
できます。しかし、これは本当に良い解決策ではありません。プログラムのどこかで別のオブジェクトが n 個の可変レジスタでレンダリングされていることを知りたくないので、別の program3D インスタンスが n 個未満のレジスタを必要とする場合、未使用のすべての va を null に設定する必要があります。また、4 番目の va が必要なオブジェクト (光っているオブジェクトなど) 用に新しいシェーダー プログラムを作成した場合は、戻って他のすべてのシェーダー プログラムを変更し、va4 を null に設定して、すべてがレンダリングされるようにする必要があります。これは本当ですか?確かに私はここで何かが欠けています。すべてのテクスチャ レジスタ (ft) を設定する場合も同じです。
もっと多くの情報を提供できます...
actionscript-3 - Stage3Dでさまざまなオブジェクトをレンダリングするときに頂点バッファを使用する最良の方法は何ですか
単純な2Dオブジェクトの配列があり、ほとんどが2つの三角形で構成されています。drawTriangles()
オブジェクトは非常に単純ですが、各オブジェクトはステンシル操作を使用して描画されるため、すべてのオブジェクトに独自の呼び出しが必要になります。
これらのオブジェクトとその頂点およびインデックスバッファを保存および処理するための最良の方法は何ですか?
私はそれを行ういくつかの異なる方法を考えることができます:
起動時に、1つの大きな頂点とインデックスバッファを作成し、それに各オブジェクトを追加します。例:
すべてのオブジェクトのレンダリングループ中に、画面に表示されているオブジェクトを確認し、頂点を更新します。次に、頂点バッファ全体を再アップロードします。その後、表示されているオブジェクトをループして、各オブジェクトの三角形を描画します。
/li>drawTriangles()
必要な場合にのみ各オブジェクトの頂点データを再アップロードすることを除いて、番号1と同様のことを行うこともできます。
/li>各フレームに表示されているオブジェクトのみで構成される新しい頂点バッファを作成することもできます。
/li>別のオプションは、オブジェクトごとに個別の頂点バッファを作成することです。
/li>
頂点バッファ全体をフレームごとにアップロードする必要があるため、オプション1は遅くなると想像できます。
オプション2には、変更された頂点データをアップロードするだけでよいという利点がありますが、への複数の呼び出しが発生する可能性がありますuploadFromVector
。
アップデート
Starlingフレームワークのソース、具体的にはQuadBatch
クラスを確認しました:http:
//gamua.com/starling/
https://github.com/PrimaryFeather/Starling-Framework
すべての頂点は事前に手動で変換され、頂点バッファ全体が再構築され、フレームごとにアップロードされるようです。
actionscript-3 - モデル ビューの射影行列は、Actionscript 3 または頂点シェーダーの GPU で構築する必要がありますか?
私が見た Stage3D の例はすべて、レンダリング イベントごとに AS3 でモデル ビュー射影マトリックスを構築します。例えば:
そして、頂点シェーダーの 1 行で頂点をスクリーン スペースに変換します。
このようにする理由はありますか?GPU はこのような計算のために作られたのではないでしょうか。
代わりに、それぞれを変更して別々のレジスタにアップロードするときに、ビューと射影行列のみを更新しないのはなぜですか :
次に、各フレームと各オブジェクトについて:
シェーダーは代わりに次のようになります。
アップデート
ここで、この質問に既に回答している可能性のある別の質問を見つけました:
DirectX world view matrix multiplications - GPU or CPU the place
ios - Adobe Air アプリの最小 IOS バージョン
新しいステージ 3D 機能を使用して、Adobe Air 3.2 を使用して IOS 用のアプリを作成しています。ターゲットにできる IOS の最小バージョンは何ですか?
また、新しい Ipad 3 をターゲットにするためには、コンパイラに IOS 5.1 を参照するように指示する必要があるようです。これは、その設定でコンパイルすると、アプリを下位の IOS バージョンで実行できなくなるということですか?
actionscript-3 - 3D ゲームでユーザーが車を逆走させないようにする方法
Flare3D を使用してフラッシュで 3D ゲームを作成しています。トラックの長い直線セクションと短いカーブ セクションで構成されるトラックがあります。プレーヤーは自分の車を自由に操縦できますが、U ターンを行ったり、トラックを逆走したりしないようにする必要があります。
これを達成する方法のアイデアはありますか?