0

WPFでピクセルシェーダーを試しているときに、MSDNサンプルhttp://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmapに基づいて、書き込み可能なビットマップを使用してフルスクリーンイメージにいくつかのピクセルを描画することにしました。
.aspx

画像にぼかしシェーダーを使用しました。継続的な効果を得るために、シェーダーから画像を取り戻し、書き込み可能なビットマップの入力として使用しました。

        RenderTargetBitmap rtb = new RenderTargetBitmap((int)width, (int)height, 96, 96.0, PixelFormats.Pbgra32);
        rtb.Render(imgBackground);

        wb = new WriteableBitmap(rtb);
        imgBackground.Source = wb;

上記のコードは本当に遅いです。画像ではなく、書き込み可能なビットマップバックバッファにピクセルシェーダーを適用するための高速化または何らかの方法が必要です。

事前にThx。しばらくの間、この問題で立ち往生しています..

4

1 に答える 1

1

RenderTargetBitmap.Render(...)は常にUIスレッドのソフトウェアでレンダリングされるため、ピクセルシェーダーはソフトウェアで実行されています。

達成しようとしている「効果」はわかりませんが、imgBackgroundにブラー効果を設定するだけでよいかもしれません(つまり、imgBackground.Effect = new BlurEffect())

于 2009-09-04T20:30:58.277 に答える