4

私は現在、画像処理のパフォーマンスを向上させるために.net3.5sp1で導入されたPixelShadersを使用して実験しています。すべてがはるかに高速ですが、それでも、wpfフォームの一部の要素にエフェクトを適用しただけで、実際には避けたいと思っています。

たくさんの画像処理機能があります。パフォーマンスを上げるために、他のものをピクセルシェーダーに少しずつ置き換えたいと思います。そのようなピクセルシェーダーを表示せずにImageSourceに適用する方法はありますか?

4

2 に答える 2

4

C# の専門家からまだ回答が得られていないのを見て、C++ DirectX 開発者の観点からこれにアプローチしようとします。私の回答が役に立たない場合でも、少なくとも正しい方向に向けられることを願っています。私は C# についてほとんど知りませんし、PixelShaders がどのようにサポートされているかについても何も知りません。そのような場合は、必要に応じてコメントするか反対票を投じてください

これを実現するために C++ / DirectX で一般的に行われていることは次のとおりです。

準備(一度行う)

  • CreateRenderTarget を使用してレンダー ターゲットを作成する
  • CreateOffscreenPlainSurface を使用してオフスクリーン サーフェスを作成する
  • SetRenderTarget を使用してレンダー ターゲット サーフェスを設定する
  • 必要なその他の入力リソース (テクスチャ、頂点バッファーなど) を作成します。

レンダリング (複数回実行)

  • 必要に応じて入力リソース (テクスチャ、バッファ) を更新します
  • 与える
  • GetRenderTarget を使用して、レンダー ターゲットのコンテンツをオフスクリーン サーフェスにコピーします。
  • オフスクリーン サーフェスをロックし、CPU でそのコンテンツを読み取る
于 2008-11-18T19:55:02.593 に答える