問題タブ [agal]
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.
actionscript-3 - stage3d の UV マッピングはどのように機能しますか?
私は3Dプログラミングが初めてです。最近、UV マッピングがわかりにくいことがわかりました。
使用して
v1 を UV 座標として、fs0 をテクスチャ ビットマップとして指定すると、これはそのまま機能しました。テクスチャが 3D オブジェクトを包み込みました。
しかし、私は 1 つの座標 v1 を使用して ft0 を oc に 1 回だけコピーしました。
頂点座標も提供しませんでした。フラグメントプログラムは、すべてのピクセルまたはすべての頂点レンダリングを呼び出しましたか?
actionscript-3 - テクスチャのランタイム圧縮を実装する方法は?
ここでドキュメントを読みました:
http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d5b.html
Flash Player 11.4 および AIR 3.4 はランタイム テクスチャ圧縮をサポートしています。これは、ベクター アートからダイナミック テクスチャをレンダリングする場合など、特定の状況で役立ちます。ランタイム テクスチャ圧縮を使用するには、次の手順を実行します。
Context3D.createTexture() メソッドを呼び出してテクスチャ オブジェクトを作成し、flash.display3D.Context3DTextureFormat.COMPRESSED または flash.display3D.Context3DTextureFormat.COMPRESSED_ALPHA を 3 番目のパラメータに渡します。createTexture() によって返された flash.display3D.textures.Texture インスタンスを使用して、flash.display3D.textures.Texture.uploadFromBitmapData() または flash.display3D.textures.Texture.uploadFromByteArray() を呼び出します。これらのメソッドは、テクスチャのアップロードと圧縮を 1 ステップで行います。
手順に従おうとしましたが、エラーが発生しました:
エラー: エラー #3763: サンプラー 0 は、AGAL で指定された読み取りモードと一致しないテクスチャをバインドします。圧縮またはシングル/デュアル チャネル テクスチャの読み取りは、明示的に宣言する必要があります。flash.display3D::Context3D/drawTriangles() で
アガル側にも指示を出すべきですか?
完全なコードは次のとおりです。
注:試して失敗した後、テクスチャに埋め込まれたpngを使用しませんでした。空のビットマップデータがランタイムを作成しただけで、私のmacos flash player 11.8では動作しません。
ここから AGALMiniAssembler.as を取得しました: https://github.com/PrimaryFeather/Starling-Framework/blob/master/starling/src/com/adobe/utils/AGALMiniAssembler.as
actionscript-3 - 3D 鏡面反射の光を反射するロジック
Stage3D ゲームに鏡面反射を追加しようとしていますが、ほとんど機能していますが、実際の反射ステージで行われている数学を十分に把握しているとは思いません。
入射光ベクトルがあり、面法線があります。結果の反射ベクトルをどうするかはわかっていますが(正規化してから、プレーヤーの「カメラ」を指す正規化されたベクトルと内積します)、顔から元の光ベクトルを反射するAGALオペコードは何ですか?私はそれについて頭をつかむことができません。助けていただければ幸いです...
actionscript-3 - Stage3D の影付けシェーダー
私は AGAL の頂点シェーダーとフラグメント シェーダーを頻繁に使用してきました。個々のオブジェクトは正しく照らされていますが (スペキュラー シェーディングを含む)、オブジェクトが他のオブジェクトに影を落とすようにしたいと考えています。私はオンラインで調べましたが、AGAL で直接作業しているほとんどの人はカスタム Stage3D ライブラリを構築しており、シャドウ キャスティング ソリューションはパブリック ドメインにないようです。それを変えようとする人はいますか?
オブジェクトに別のオブジェクトに影を落とす方法を知りたいです。この問題をどこから始めればよいのか頭がつかめないので、私が試したことを投稿することはできません。別のオブジェクトのシェーダーに情報 (他のオブジェクトが光をブロックしているかどうか) をどのように渡しますか?
ありがとう。
actionscript-3 - AGAL: Matrix3D.append() の代わりに m44
そのような計算を移動する方法:
シェーダー内?
私の現在のアプローチ:
vt4 に間違った結果を生成します。私は何を間違っていますか?
actionscript-3 - AGAL オペコード mul および dp4
コードAGALに飛び込もうとしていて、興味深い質問がいくつかあります。
最初の質問はオペコードに関するものでmul
、dp4
私が正しければ、mul は次のことを行います。
dp4 ft0, ft0, ft5
は と同じmul
ですが、別のコンポーネント順序を使用して順序を変更できますft0.argb
。
前もって感謝します!
flash - AGAL - スペースを切り取る位置 M44 op, va0,vc0
M44 op、va0、vc0 - どういう意味ですか? これは、頂点シェーダーの最初の行です。何度も見ますが、次のことを理解していません: Vc0 - 空の 3D マトリックス - オブジェクトの位置 Va0 - 頂点座標
ベクトルを行列に掛ける必要があるのはなぜですか?
前もって感謝します!
flash - AGAL - Optcode NRM - ベクトルをサイズ 1 に正規化 - なぜ使用するのか?
皆さん、今晩は!
理解しようとしているコードのサンプルがあります。
私はほとんどの操作を想像することはできませんが (プログラムの意味を理解するためにすべての計算を紙の上で行うようにしています - 可能だと思います)、NRM オプトコードは何よりも私を混乱させます。なぜそうするのか理解できません。私が見つけたように、すべてのベクトルの長さは 0,0,0 からその座標までです。正規化されたベクトルの長さは 1 です。これは計算にどのように役立ちますか? 前もって感謝します!