writeablebitmap上的WPF像素着色器

时间:2009-09-04 10:08:30

标签: wpf shader

在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;

上面的代码非常慢。 我需要一些东西来使它更快或某种方式将像素着色器应用于可写位图后备缓冲区而不是图像。

提前谢谢。 暂时坚持这个问题..

1 个答案:

答案 0 :(得分:1)

RenderTargetBitmap.Render(...)始终在UI线程的软件中呈现,因此您的像素着色器甚至可以在软件中运行。

我不确定你想要达到的“效果”,但也许你可以在imgBackground上设置模糊效果(即,imgBackground.Effect = new BlurEffect())