問題タブ [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 - ベクターレンダリング用のFlash 11とStage3D?
ネイティブのフラッシュ レンダラー (主に、多くの lineto、curveto コマンドを使用したベクトル描画) に大きく依存するフラッシュ アプリケーションがあります。
私が見たデモとベンチマークのほとんどは、スプライトのサイズ変更/回転だけです。新しい 3D エンジンは、主にベクター レンダリングを行うアプリケーションのパフォーマンスを向上させますか?
flash - AGAL と可変レジスター
これがどのように機能するかをやりたかっただけです。だから私は頂点シェーダーにいます。va1 から v1 までの UV 座標を保存します。フラグ シェーダでは、補間されたテクスチャ座標が v1 でサンプリングできるようになりました。セマンティクスのように、v1 を通常の座標に関連付けるためのボンネットの下の接続はありますか?
フラグメントは、三角形ごとにフラグメント シェーダーにプッシュされますか?それとも、メッシュ全体のジオメトリ頂点が通過した後ですか?
頂点シェーダーで、モデル ビューに頂点の位置を乗算するとします。次に、z 座標を別のフラグメント シェーダーと共有したいと考えています。変換されたベクトルの z コードを v3 に保存します。フラグメント シェーダーで z 座標の v3 にアクセスすると、これは渡したのと同じ z 座標ですか、それともこの z 座標はパースペクティブ ディバイドによって変更されますか? これらのレジスタに値を格納するときに説明されている「補間」動作を明確にしたいので、質問するだけです。
flash - Stage3D をフルスクリーン モードと標準スクリーン モードの間で切り替えるにはどうすればよいですか?
私は ND2D ライブラリ ( Github で入手可能なエンジンのソースである NullDesign によって作成されたもの) でいくつかのことをテストしています。
私が遭遇したのは、Flashアプリケーションをフルスクリーンモードに切り替えると、World2D
(またはStage3D
/Context3D
その中に埋め込まれている)が自動ストレッチされず、画面全体の解像度に最大化されないということです。
セットアップを新しいフルスクリーン サイズに再初期化する必要がありますか? stage.scaleMode
が に設定されている場合はどうなり"NO_SCALE"
ますか? ステージは大きく見えますが、同じ座標系と寸法を保持するため、寸法に影響しますか?
でフルスクリーンモードを正しく切り替える方法を誰かが理解したことがある場合はStage3D
、光を当ててください!
ND2Dで解決策があればさらに良いです:)
ありがとう!
flash - VertexBuffer3D を使用して階層表示構造内のオブジェクトを操作する方法は?
私が達成しようとしていることをよりよく説明するために、簡単な例を次に示します。
シナリオ 1 : 一部の 3D コンテナー オブジェクト内に、2 つのキューブを追加したいと考えています。これらの 2 つの立方体を追加した後、コンテナーの位置、回転、スケールも変換したいと思います。
シナリオ 2 : 3D キャラクターのボディは、多くの階層的な子 (およびサブ子) で構成され、それぞれがアニメーションの過程でさまざまな変換を行います。
だから私の質問は:
これらの個々の 3D オブジェクト変換を効率的に計算するにはどうすればよいですか? 1つだけでこれを行うことさえ可能VertexBuffer3D
ですか? それともVertexBuffer3D
、各オブジェクトを追跡するためにいくつか必要ですか? 複数を使用するVertexBuffer3D
と、限界に達する可能性があるようです (ただし、Stage3D
/Context3D
ドキュメントを十分に読んでいないため、確実に知ることができません)。
flash - AGAL Vertex Shaderでは、出力シェーダーで使用される「w」コンポーネントは何ですか?
頂点の位置の「xyz」コンポーネントは理解していますが、「w」は何をしますか?常に同じ定数値のままにしておくことはできますか?
例:
flash - Stage3D カリングの混乱
OpenGL では、デフォルトの設定は次のとおりです。
- 座標系 = 右利き、
+x->right, +y->up, +z->towards-viewer
. - したがって、z を中心とした正の回転は、x 基底ベクトルを y (反時計回り) に移動します。
- 正面向きのポリゴンは、CCW 頂点として定義されます。
- 背面フェースのカリングは、次の方法で実現されます。
わかりました、私たちは皆これを知っています。Flash11/Molehill/Stage3d
では、デフォルトは同じであると想定されています。
ただし、手順 4 で背面カリングを有効にすると、次のようになります。
私の顔は選別されています。デフォルトはContext3DTriangleFace.FRONTのようです。それ以外は同じである OpenGL と Stage3D でサニティ チェック ケースを作成しました。同じ頂点/インデックス リスト、デフォルトのまま、同じ正投影行列、同一の ModelView ですが、カリングを BACK ではなく FRONT に設定する必要があります。
Stage3D の巻き取りのデフォルトが異なるようです。つまり、ボンネットの下で OpengGL が次のように設定されているかのようです: glFrontFace(GL_CW); OpenGL のデフォルトの代わりに: glFrontFace(GL_CCW);
他の誰かがこれに出くわしましたか? それは私を夢中にさせています...
flash - VertexShader が 8 つの入力に制限されているというアドビの正確な意味は何ですか?
頂点のデータ セットごとに合計8 個の float値しか渡せないということですか?
これは、次のいずれかしか持てないということですか?
- FLOAT_4の2 つの入力。
- FLOAT_2の4 つの入力。
- FLOAT_1の8 つの入力。
- 合計で8 つの float値になる混合物はありますか?
これは事実ですか?もしそうなら、ドキュメントで8つの入力を使用できると言うのは本当に誤解を招くからです。
データを正しくフォーマットしていないために問題が発生している可能性がありますが、次のようにverticesごとに9 個の floatを使用しようとしています。
- va0 は FLOAT_4 になり、オフセットは0に設定されます。
- va1はFLOAT_4になり、オフセットは4に設定されます。
- va2はFLOAT_1になり、オフセットは8に設定されます。
しかし、この実験では画面には何も表示されません。VertexShader の入力制限を超えていますか?
flash - キューブの両側に個別にテクスチャを適用しますか?
Away3Dを使用して、立方体を正常に表示しました。これまでのところ、立方体の両側に個別にテクスチャを表示したい場合(両側に異なるテクスチャ)、スプライトマップのようにすべてを1つのテクスチャに配置する必要があります。キューブの両側に異なるビットマップを適用できるように、これを行う方法はありますか?これまでの私のコードは次のとおりです。
flash - 外部モデルをStage3Dにインポートするためのオプションは何ですか?
クイックグーグルルックアップで私が見つけたものから、モデルインポートのStage3Dサポートは最高ではありません。
誰かがこのようなことをしようとして、それを行う方法についての情報を私に提供することができますか?
COLLADA/FBXなどに対応したインポーターに興味があります。
前もって感謝します!
flash - Context3Dで定数(頂点またはフラグメント)をリセット/無効化できますか?
Program3D
さまざまなインスタンスに対して複数の描画呼び出しを行う場合、次の次の割り当てで使用しなくなった定数をリセットまたは無効にする方法はありますか?Program3D
私がこのようなことをする必要さえありますか?