問題タブ [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 - モールヒルシェーダー
私はモグラヒルを理解しようとしていますが、頂点を2つの行列で乗算したいと思います。
私の頂点シェーダーは次のようになります。
そして、私は行列を設定します
しかし、それは機能していません。私は何が間違っているのですか?
シェーダーを配置する前にマトリックスを複数化できることを認識していますが、AGALを理解しようとしています。
乾杯
actionscript-3 - Photoshopのような「軽量化」フラグメントシェーダーの問題
OpenGLでこれにタグを付けているのは、そのスペースに関連していると思うからです(名前は異なりますが)。
OpenGL(ES2?)を使用するFlash11でフォトショップのようなブレンディングを機能させようとしています。私はlightenで特定の問題を抱えていますが、それは次のようになるはずです。
outputColor.rgb = max(base.rgb、blend.rgb);
レイヤーに透明性があるため、問題が発生していると思います。ただし、レイヤーを事前に乗算しても、問題が発生します(画像がまだ暗すぎます)。
私はここで一歩を逃していますか?(これは、AdobeのglアセンブリであるAGALです)
actionscript-3 - AGAL で即値を使用する方法
例えば、フラグメントシェーダーで赤色を出力したい。
HLSL:
asm:
これをAGALに実装する方法は?
flash - AGAL操作で数値をハードコーディングできますか?
レジスターの 1 つのカラー チャネルに 1.0 を単純に追加しようとすると、次のことができますか?
- 私が知らないいくつかの浮動小数点数の構文で直接書くか、または...
- 最初に数値を定数に渡して、そこでその定数レジスタを使用する必要がありますか?
私がやろうとしていることの例:
flash - AGAL と可変レジスター
これがどのように機能するかをやりたかっただけです。だから私は頂点シェーダーにいます。va1 から v1 までの UV 座標を保存します。フラグ シェーダでは、補間されたテクスチャ座標が v1 でサンプリングできるようになりました。セマンティクスのように、v1 を通常の座標に関連付けるためのボンネットの下の接続はありますか?
フラグメントは、三角形ごとにフラグメント シェーダーにプッシュされますか?それとも、メッシュ全体のジオメトリ頂点が通過した後ですか?
頂点シェーダーで、モデル ビューに頂点の位置を乗算するとします。次に、z 座標を別のフラグメント シェーダーと共有したいと考えています。変換されたベクトルの z コードを v3 に保存します。フラグメント シェーダーで z 座標の v3 にアクセスすると、これは渡したのと同じ z 座標ですか、それともこの z 座標はパースペクティブ ディバイドによって変更されますか? これらのレジスタに値を格納するときに説明されている「補間」動作を明確にしたいので、質問するだけです。
flash - AGAL Vertex Shaderでは、出力シェーダーで使用される「w」コンポーネントは何ですか?
頂点の位置の「xyz」コンポーネントは理解していますが、「w」は何をしますか?常に同じ定数値のままにしておくことはできますか?
例:
flash - AGAL でビット単位のシフト操作を行う方法はありますか?
すべての色を 1 つの float 値 (RGB) にエンコードすると、次のようになります。
これらのカラー チャネルを AGAL に戻すにはどうすればよいですか? ビット単位の演算子はないようです。
flash - AGALの頂点定数以外の頂点レジスタに行列を存在させることはできますか?
Matrix3DオブジェクトがAS3の頂点定数レジスタとしてContext3Dオブジェクトに渡される例を主に見てきました。しかし、他のタイプのレジスタ(一時または属性)で行列を見たことはありません。
Matrix頂点定数を一時レジスタにコピーしてから、他の指定された値(頂点属性または他の定数)を使用して、そのMatrix一時レジスタの個々のフィールド(例:回転用)を操作する方法はありますか?
簡単なmov dest, source
操作でうまくいくでしょうか?
actionscript-3 - agal のフラグメント シェーダーで現在のバッファー深度を取得する
フラグメント シェーダーの AGAL で現在のフラグメントの深さを取得することは可能ですか?
field - Vertex Attribute レジスタの各フィールドに 4 つの単一の VertexBuffer を関連付けることはできますか?
Stage3D
/では、次のような方法でAGAL
個々の VertexBuffers を同じものにポイントすることは可能ですか?va0
各
VertexBuffer
データは個別に変更できます (状況によっては、これが優れたパフォーマンスであると思いますか?)。それぞれが(最初の頂点属性レジスタ)
VertexBuffer
の 1 つのフィールドに焦点を当てているため、vertexbuffer1は vertexbuffer2 = 、vertexbuffer3 = 、および vertexbuffer4 = を操作します。va0
va0.x
va0.y
va0.z
va0.w
オブジェクトにVertexBuffer を割り当てるときに「オフセット」とデータ形式 (例: FLOAT_1、FLOAT_4) を指定できるので、Context3D
これが可能になると思います。
設定が間違っているのかもしれませんが、これを試してみたところ、達成できませんでした。
各 VertexBuffer は、各レジスタの 4 つのフィールド全体を占める必要がありますか? もしそうなら、なぜ FLOAT_1 から FLOAT_3 への値が存在するのか理解できません! :S
前もって感謝します!