問題タブ [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 関数
私はstage3Dについて学んでいて、初めて何かをレンダリングしようとしています。このプログラムの過程で実行時エラーは表示されませんが、出力が表示されません...私のコードは次のとおりです(必要に応じてコメントを付けてください)
これをいくつかのオンラインの例と比較しましたが、矛盾は見つかりませんでした。見落としている設定、または不足している要件があるのではないかと考えています...でも迷っています。考え?
actionscript-3 - Stage3D、AGAL - 頂点とテクスチャの座標系
より複雑なシェーダーを使用しようとしてきましたが、頂点シェーダーとテクスチャ サンプラーで使用される座標系で問題が発生しました。要するに、それらは意味をなさないように見え、それらをテストしようとすると、一貫性のない結果が得られます。さらに悪いことに、インターネットにはドキュメントがほとんどなく、私が見つけた情報のほとんどは、これがどのように機能するかを既に知っていることを期待しているようです. 誰かが次のことを明確にしてくれることを望んでいました:
- 頂点シェーダーは、レンダー ターゲット上の位置を表す (x, y, z) を渡します。x、y、z の許容値は?
- x と y はバック バッファーの幅と高さにどのように対応しますか (それがレンダー ターゲットであると仮定します)?
- x と y は出力テクスチャの幅と高さにどのように対応しますか (それがレンダー ターゲットであると仮定して)?
- x=0 かつ y=0 の場合、頂点はどこに位置しますか?
- テクスチャ サンプラーは、(u, v) 座標でテクスチャをサンプリングします。u と v の許容値は?
- u と v は、サンプリングされるテクスチャの幅と高さにどのように対応しますか?
- AGAL のラップ、クランプ、およびリピート フラグはどのようにサンプリングを変更しますか? また、指定されていない場合の既定の動作は何ですか?
- u=0 および v=0 でサンプリングする場合、どのピクセルが位置ごとに返されますか?
編集: 私のテストから、答えは次のとおりだと思います:
- わからない
- -1 は左/下、1 は右/上
- わからない
- 出力の中心に
- わからない
- 0 は左/下、1 は右/上
- わからない
- テクスチャの左下
actionscript-3 - 機能しないテクスチャへのレンダリング
Stage3D の setRenderToTexture 関数をテストしようとしていますが、テスト コードから出力が得られません。誰かが理由を教えてくれることを望んでいました-私はこれを機能させるために事実上すべてを試しました。私が作成したコードは以下のとおりです。
編集:空白のビットマップの色を変更すると、最終出力の色が変更されることに気付きました-表示されていますが、正方形はレンダリングされていません。
actionscript-3 - AGAL 文書化されていない操作
AGALMiniAssembler クラスのソースをちらりと見てみると、どこにも文書化されていないように見える一握りのオペ コードifz
( 、eif
、brk
、およびその他多数) と、文書化されていないテクスチャ サンプリング フラグのように見えるもの ( 3d
、centroid
、 、single
および) に気付きました。 depth
. これらは機能しており、文書化されていない操作とフラグですか? 未使用のコードは後で実装することを検討していますか? 彼らが何をしているのか誰か知っていますか?
actionscript-3 - AGAL シェーダーをジャストインタイムでコンパイルする必要があるのはなぜですか?
Flash Player 11 では、OpenGL GLSL シェーダーおよび DirectX HLSL シェーダーに Flash 開発者に透過的にコンパイルできるAGAL 統合シェーダー アセンブリ言語が導入されました。
AGAL を使用するほぼすべてのプログラムは、AGALMiniAssembler (AS3 で作成) にパッケージ化されています。AGALMiniAssembler は、AGAL ソース コードを文字列として受け取り、実行時に AGAL バイナリ形式にコンパイルします (つまり、ジャスト イン タイム)。このバイナリ データは Flash Player に供給され、グラフィックス ハードウェアに供給されます。
しかし、そもそもなぜ AGALソース コードを公開してアプリに含める必要があるのでしょうか。開発者で AGAL アセンブラーを実行できませんでしたか。PC に AGAL ByteArray を含めるだけですか? AGAL シェーダーはジャストインタイムでコンパイルする必要がありますか? 利益を求めているわけではないことに注意してください。AGAL ソース コードを含めて、AOT (Ahead of Time) ではなく JIT をコンパイルすることが本当に必要かどうかを尋ねているだけです。
vertex-shader - Stage 3D - 「数学的に」軌道線を描く
Stage3D と AGAL を使用して、実際のメッシュを使用せずに円の周囲だけを描画する方法があるかどうかを知りたいです。特定の平面上の空間内のポイントから常に同じ距離に op (出力位置) レジスタを設定しながら、頂点シェーダーがメッシュの頂点を処理していると考えるように何らかの方法で「だまされる」可能性があると考えています。(私が作っている宇宙ゲームで惑星の軌道をレンダリングしたいのですが)
それがどのように行われるのか頭がわかりません。何か案は?
actionscript-3 - Stage3D で 1 ピクセル幅の線を描画する方法
私は宇宙を舞台にした 3D ゲームに取り組んでいます。現在、惑星の軌道線を追加中です。
理想的には、カメラからの線の距離に関係なく、1 ピクセル幅で軌道線を描きたいと思います。誰もそれを行う方法を知っていますか?
現在、惑星の軌道に合わせてスケーリングおよび回転された平面メッシュを使用しています。フラグメント シェーダーでは、U 座標と V 座標を使用して、特定のピクセルにピクセルを描画する必要があるかどうかを判断します。
したがって、ft1 は平面メッシュの中心から現在のフラグメントまでの距離になります。sge および slt op コードを使用してこの値を '1' と比較できますが、結果の線を常に 1 ピクセル幅で描画するにはどうすればよいですか? 私が得ている結果は、遠近法によって歪んでおり、カメラが平面に近い場合にも歪んでいます。
現在のフラグメントのカメラからの距離で幅をスケーリングしようとしましたが、それは醜い回避策のようです-カメラが軌道の平面と同じ高さになった場合でも、「平坦化」の影響を受けます。
解決策は何ですか?確かに1ピクセル幅の線を遠近法なしで描くことは可能です...
shader - 照明用スターリング拡張機能のグラデーション シャドウ
http://devsbook.com/est.jpgを取得する方法を教えてくださいhttp://devsbook.com/est2.jpg ウェブサイト winxalex.blogspot.com -> gradient-shadow-filter-starling で例を見つけました。 html でも使えません。ありがとう
このベース シャドウ シェーダ
registry - ハードウェア サポートを使用した minko ボーン アニメーションにより、エラー #3659: AGAL 検証に失敗しました
ベースラインではなく標準プロファイルで実行するように minko as3 コードを更新しました。実際に知っているアニメーション付きのメッシュがあり、185 個の頂点定数があり、最大許容量は標準で 250 ですが、[トレース] エラー: エラーが発生し続けます。 #3659: AGAL 検証に失敗しました: 頂点プログラムのトークン 1 で、ソース オペランド 1 の定数レジスタ インデックスが範囲外です。
アガルがどのように機能するかについてはまったく知識がありませんが、ミンコは理解できます。誰かが私を正しい方向に向けてくれませんか? 私はすでにminko Profile.asクラスとそれが使用されている場所を調整しました.
actionscript-3 - AGALレジスタが3Dベクトルを「含む」場合、どのように加算または減算されますか?
私が開発している宇宙ゲームで、惑星リングに影を追加する作業をしています。このために、円柱 (惑星の影) が平面 (リングのメッシュ) と交差する場所を計算する必要があります。
「サブ」および「追加」オペコードがレジスタの各コンポーネントをどのように処理するかを確認できないために、私は妨げられています。このページhttp://www.adobe.com/devnet/flashplayer/articles/what-is-agal.htmlには、各オペコードの機能を示す図があります。加算と減算 (他の計算の中でも) を「コンポーネント単位」と記述します。
これは、3D ベクトルを加算または減算すると、x、y、z (および w?) コンポーネントが互いに独立して影響を受けるということですか? そして、もしそうなら、例えば2つの数値を加算または減算する場合、レジスタはそれをしないことをどのように「知っている」のでしょうか? 3D ベクトルの各コンポーネントを個別に処理する必要がありますか、それとも 'add' または 'sub' を使用して 2 つのベクトルを正しく加算または減算しますか?