問題タブ [pixel-shader]
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 - PixelBenderで特定の色の範囲を表示/非表示
特定の(補間された)色の範囲を非表示にする最良の方法は何ですか?たとえば、青>シアン>黄色>赤のグラデーションがあります。必要なのは、青>シアン、黄色>赤を非表示にし、シアン>黄色のままにすることです。
範囲ごとに異なるフィルターを適用してもかまいません。
何か案は?
opengl - DX9 および DX10): デフォルトのピクセル (および頂点) シェーダーは何ですか? (可能であれば OpenGL も。)
DX9 ではオプションでシェーダーを指定できること、および DX10 ではシェーダーを指定する必要があることを認識しています。私が持っている質問は、シェーダーを使用したいと言って、シェーダーを指定しないとどうなるかということです。一言で言えば、私が探しているのはデフォルトの動作です。デフォルトのシェーダーはありますか?
次のシナリオに興味があります。
- DX10、ピクセル シェーダーを指定しないでください。(PSSetShader(NULL) を呼び出さなければなりませんか? そうでない場合はどうなりますか?) 実行される既定のシェーダーは何ですか?
- 同じ質問、頂点シェーダー。
- DX9 で、ピクセル シェーダーを使用するように指定したのに指定しなかった場合はどうなりますか? デフォルトはありますか?固定機能インターフェースの使用を選択した場合、デフォルトはありますか? それらのデフォルトは同じですか?
- おまけの質問: OpenGL と GLSL はどうですか? DX9と同じ質問です。
これに関するドキュメントへのポインタを見てみたいです.MicrosoftのオンラインDXドキュメントを熟読しましたが、デフォルトの動作を見つけることはできませんでした.
ありがとう!
flash - Pixel Bender で色範囲をオフにする
特定の範囲内にある色を (PixelBender を使用して) オフにする最良の方法は何ですか。たとえば、0x0000FF から 0x00FFFF までのすべての色をオフにします。ご協力いただきありがとうございます。これは Flash で動作する必要があります。ありがとう!
shader - シェーダーを使用して画像を比較する
2 つの画像を比較する単純なシェーダー (hlsl) を作成する方法を知っていますか? 類似度の結果パーセントを取得したいですか?この場合、シェーダーを使用することは可能ですか? たとえば、シェーダーを使用して画像の赤いピクセルを数えることはできますか?
random - ピクセル シェーダー内で乱数を生成できますか?
適用可能なオブジェクトにランダムな輝きを追加する非常に単純なシェーダーを作成しようとしています。これを行う方法は、ピクセル シェーダー内のピクセル値に白 (R = G = B) のランダムな色合いを追加することです。
それはnoise()
私が望むようには機能しないようです:
への呼び出しを参照すると、「エラー X4532: 式をピクセル シェーダー命令セットにマップできません」というメッセージが表示されnoise()
ます。
シェーダーの呼び出し間で数値を保持する方法がわからないため、レンダリング前に渡されたシードに基づいて単純な乱数生成関数を作成することはできないと思います。
ピクセル シェーダー内から乱数を生成する方法はありますか? 方法があるとすれば、どのように?
directx - ComputeShaderとPixelShaderの速度
PixelShaderと比較したComputeShaderについて質問があります。バッファで何らかの処理を行いたいのですが、これはピクセルシェーダーと計算シェーダーの両方で可能ですが、特に速度に関しては、どちらにも利点があるのではないかと思います。8ビット値だけを使用することに問題がありましたが、それを回避できるはずです。
出力内のすべてのデータポイントは、それを囲む合計8つのデータポイント(MxNマトリックス)を使用して計算されるため、異なる出力は互いにまったく影響を与えないため、これはピクセルシェーダーに最適だと思います。
しかし、シェーダーを比較するためのベンチマークを見つけることができなかったので、どちらを目指すべきか疑問に思います。唯一の目標は速度です。
graphics - 私の「パーリン」ノイズ エフェクト シェーダは、すべて白またはすべて黒のいずれかを生成します
NVidia FX Composer で「パーリン」ノイズ シェーダをコーディングしようとしています。ただし、ノイズ関数をどのように微調整しても、100% 白または 100% 黒のいずれかが返されます。これを解決する方法や、問題がどこにあるのかさえわかりません。
編集:このページを見たことがあるなら、おそらく私がどこでコードを入手したか知っているでしょう。すでに CPU で作業している方法から始めようと考えました。
助けてください。
ありがとう。
rendering - コンディショナルと未使用のサンプラー/テクスチャは、SM2/3 ピクセル シェーダーにどの程度のパフォーマンスを追加しますか?
HLSL には 1 つのピクセル シェーダーがあり、いくつかの場所でわずかに異なるものに使用されます。そのため、いくつかの条件付きブロックがあり、場合によっては複雑な機能が省略されることを意味します。同様に、これは、常に使用されるとは限らないサンプラー パラメーターとしてテクスチャを渡すことを意味します。
これら 2 つのことが追加されてどれだけのパフォーマンスが影響を受けるかはわかりませんが、特に統合グラフィックス チップで SM2.0 をサポートしているため、非効率性が問題になっています。では、テクスチャを渡して使用しないことは、余分なオーバーヘッドを意味するのでしょうか? また、 を使用するif
と、いくつかの命令を追加するだけで機能しますか? それとも、CPU の最適化を行うときのように、ストールなどのために劇的に影響を与える可能性がありますか?
xna - 複数のテクスチャをサンプリングし、同じピクセル シェーダーで複数のテクスチャにレンダリングする
私の全体的な目標は、複数のテクスチャを入力として受け取り、複数のターゲットにレンダリングするピクセル シェーダーを作成できるようにすることです。シェーダーの初期化とファイナライズを使用するだけでなく、このシェーダーを繰り返し実行することで、結果が得られます。
以前に複数の入力テクスチャを持つシェーダーと、複数のターゲットにレンダリングするシェーダーを作成したことがありますが、2 つを組み合わせたことはありません。
私が問題を引き起こしていると信じているのは、セマンティクスと、入力および出力テクスチャを適切に設定する方法を完全に理解していないことです。
入力テクスチャを取得するいくつかの異なる方法を見てきましたが、どのように設定すればよいかについて混乱しています。
以下は、init および iterate シェーダーによって出力される共有構造体のコードです (finalize シェーダーは単に色を出力します)。
p>以下は iterate シェーダーと finalize シェーダーのテクスチャー宣言です (init シェーダーはテクスチャーを使用しません)。
p>C# XNA コードでは、(GraphicsDevice.SetRenderTargets() を実行して) レンダー ターゲットを設定し、(Effect.Parameter["TextureVariableName"].SetValue() を実行して) テクスチャ パラメーターを設定し、(スプライト バッチを介して) クワッドを描画します。
このようなことをする例が見つからないので、どんな助けでも大歓迎です。
plugins - Actionscript 3: ローカル プログラムとの間でデータを取得する方法はありますか?
私は最近、現在コーディングしている Flash ゲームのプレイヤー キャラクターにシェーディングを適用するピクセル シェーダーを構築しています。しかし、結局のところ、Actionscript 3 は... これを適切に処理しておらず、フレームレート ヒットがかなり大きくなっています。
私がやりたいことは、OpenGL バッファを使用して微調整したいピクセルを格納し、ハードウェア アクセラレーション方式で微調整し、それを Flash ファイルに戻すことができる C++ で何かを作成することです。
AS3 にビットマップ データをローカル シェーダー プラグイン .exe に渡し、返されたデータを受け入れる方法はありますか、それともあきらめて、Unity などで全体を書き直す必要がありますか?
これに失敗した場合、AS3 で GPU に数値処理を強制する方法はありますか? OpenGL は AS3 で使用できないことはわかっていますが、DirectDraw は使用できますか?
私は、この事業全体が a) ばかげたやり過ぎであり、b) おそらく運命づけられていることを認識していますが、現在、プロジェクトの反省的なエッセイに取り組まなければならないのを妨げているのはそれだけです. (大学の授業)