問題タブ [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.

0 投票する
1 に答える
257 参照

c - 頂点データを複数回出力する CGFX シェーダ

頂点シェーダーからピクセル シェーダーに何かを複数回出力するにはどうすればよいですか。たとえば、頂点シェーダーで頂点の色に対していくつかの異なる数学演算を実行した後、頂点の色を float 4 としてピクセル シェーダーに 4 回出力する必要がありますか?

私はこれを行うことができますか?空のfloat4 color2を作成し、In.colorからIn.vertcolorを読み取って出力しようとしました...エラーは発生しませんが、テクスチャは白です。空の float 4 を読み取るだけです...

これがこのセクションの私のコードです。ありがとう!

0 投票する
4 に答える
10730 参照

glsl - ピクセル シェーダーで実装できるぼかしの種類は何ですか?

ガウス、ボックス、ラジアル、ディレクショナル、モーション ブラー、ズーム ブラーなど。

ガウスぼかしは、ピクセル シェーダーで実装できるパスに分解できると読みましたが、サンプルが見つかりませんでした。

それ自体以外のピクセルに関係する効果は、ピクセル シェーダーで実装できないと仮定するのは正しいですか?

0 投票する
1 に答える
298 参照

c# - WPF 効果はどこで定義されていますか?

などのWPF効果がどこにBlur定義されているのだろうか? それらはピクセルシェーダーですよね?それらの実装を覗く方法はありますか?

0 投票する
2 に答える
2132 参照

c# - C# での PixelShading

最初の投稿で最初の間違いをしないことを願っています。

いくつかのグラフィック効果とフィルター (たとえば、ソーベルまたはガウス マスク) のライブラリを作成しています。速度が遅いため、これを CPU で実行し、Shazzam ツールを使用していくつかのシェーダーを作成しました。

私の具体的な問題は、C# でこのシェーダーを使用できないことです。インターネットでは、ピクセルシェーダーを XAML の効果として要素に直接適用する方法のアドバイスしか見つかりませんでした。これは、私のアプリケーションでは使用できません。キャニー エッジ検出器。

この問題を説明するために、私がメソッドから期待するものを表示する必要がある小さな疑似コードを示します。

ご覧のとおり、すべて C# で行う必要があります。

おそらく、あなたは私の問題で私を助けることができます.

0 投票する
4 に答える
1120 参照

c# - シェーダー効果適用後の画像のブレ

WPF のピクセル シェーダーの奇妙な動作に遭遇しました。

この問題は 100% 再現可能であるため、簡単なデモ プログラムを作成しました。ソースコードはこちらからダウンロードできます。

すべての悪の根源は、MyFrameworkElement という名前の小さなクラスです。

ご覧のとおり、このフレームワーク要素は 2 つの線をレンダリングします。下の線は永続的な座標を持ちますが、上の線は EndX 依存関係プロパティに依存します。

したがって、このフレームワーク要素は、ピクセル シェーダー効果のターゲットです。簡単にするために、ここにあるグレースケール シェーダー効果を使用します。そこで、MyFrameworkElement に GrayscaleEffect を適用しました。結果を見ることができます。

EndXプロパティを大幅に増やすまで。

細いラインはぼやけて、太いラインはスッキリ!

しかし、グレースケール効果を削除すると、すべての線が本来のように見えます。

このぼやけの理由を説明できる人はいますか? または、どうすればこの問題を解決できますか?

0 投票する
0 に答える
1073 参照

c# - Managed DirectX:HLSL効果をサーフェスに適用する

まず、私は完全なDirectX初心者です。ビットマップをサーフェスにロードしているので、表示する前にHLSLエフェクトを適用する必要があります。目標は、画像にリアルタイムの効果を表示することです。何らかの理由で、画像は表示されますが、効果はありません。

表面をバックバッファーまで伸ばしているという事実に関係しているのではないかと思いますが、それは効果を回避しますが、それを解決する方法がわかりません最終的に、このサーフェスには、3D Visionで動作するように、ステレオイメージペアとNvidiaのステレオイメージ署名が含まれます。これはこの質問には重要ではありませんが、他の方法の方が優れているのに、なぜサーフェスを使用しているのかを説明している可能性があります。

これが私のコードです:

フォーム:

シェーダー内:

0 投票する
2 に答える
1565 参照

image-processing - DirectX HLSL ピクセル シェーダーを使用して写真の画像効果を作成する

DirectX ピクセル シェーダーを使用して写真の画像効果を作成することはできますか? 写真データベース マネージャーのようなものを含む C++ アプリケーションがあります。画像処理に GDI+ を利用しており、ユーザーにファンシーな画像効果を提供したいと考えています。これは、DirectX ピクセル シェーダーを介して行いたいと考えています。Shazzam ツールがサンプル ライブラリを使用してすぐに使用できるように、同様の効果を実現したいと考えています。残念ながら、私は純粋な GDI+ を使用しており、WPF は使用していません。

GDI+ ビットマップで画像効果を作成するには、次の手順を考えました。

1) GDI+ 経由で画像を読み込む

2) DirectX を初期化し、シェーダーをロード/コンパイルし、GDI+ イメージを DirectX でテクスチャーとして使用するように変換します。

3) DirectX で 4 つの頂点を描画し、写真をテクスチャとして使用する

4) ピクセルシェーダーを適用する

5) ピクセルシェーディングされた写真でサーフェスを保存します

1-4 はすでに解決済みですが、ステップ 5 を達成するにはどうすればよいですか?

現在、変更された写真を収集するために次のスニペットを使用しています。

このコードは、テクスチャ (=写真) だけでなくシーン全体をキャプチャするため、私のニーズには合いません。ピクセル シェーディングされた写真テクスチャを元のサイズに戻すにはどうすればよいですか? Shazzam Tool が提供するのと同じ結果を達成したいのですが、WPF は使用しません...

前もって感謝します!

乾杯!

0 投票する
1 に答える
228 参照

wpf - wpfでShaderEffectのSamplerPropertiesを取得するには?

WPF では、ShaderEffects を定義するときに、

ピクセル シェーダー サンプラー プロパティ (実際のピクセル シェーダーに供給され、Brush 型のもの) を導入する。しかし、これらのプロパティを ShaderEffect クラスから取得するにはどうすればよいでしょうか?

0 投票する
2 に答える
437 参照

actionscript-3 - ピクセル ベンダー 4 色シェーダー

私は Pixel Bender の経験がなく、シェーディング言語は意味不明に思えるので、Pixel Bender フィルター/シェーダーとして機能するように次の as3 コードを書き直すのを手伝ってくれる人がいないかと考えていました。それが機能する方法は、16777215 色を、パレット配列で定義した 4 つの色調 (最初に最も明るい色、最後に最も暗い色) に変換することです。結果は満足ですが、性能が悪いのでフィルターを作りたいと思います。コードは次のとおりです:(sbitmapは私のライブラリの画像です)

私が得た結果は次のとおりです

0 投票する
1 に答える
2033 参照

xna-4.0 - XNA4.0でTexture2DオブジェクトをPixelShaderに渡す方法は?

各フレームをキャプチャし、ルックアップテーブルに従って各ピクセルの位置を変更したいと思います。たとえば、ピクセル(30,35)->(40,50)などです。

したがって、私が行ったことは、RenderTarget2Dによってフレームをキャプチャし、各ピクセルを通過して、新しいビットマップ配列に各ピクセルの新しい位置を設定することです。ただし、これにより、RenderTarget2D.GetColorメソッドの影響により、パフォーマンスが低下しました。

だから私はピクセルシェーダーが解決策かもしれないと思った:Drawメソッドで:1。単純なフレームを描く2.RenderTarget2Dでそれをキャプチャする3.そしてシェーダーを通してモデルを描く

しかし、シェーダー内では、キャプチャされたばかりのTexture2Dと、マップされたピクセル位置を読み取るためのルックアップテーブルにアクセスする必要があります。これらの変数をシェーダーに渡すにはどうすればよいですか?

編集:これはDraw()メソッドにあるコードですが、モデルに変更が適用されない理由がわかりません