强制像素着色器效果仅对1个图像并行运行

时间:2014-02-03 09:34:57

标签: c# wpf image gpu pixel-shader

我有wpf应用程序显示非常大的图像,上面有像素着色器效果(对比度调整)。执行非常好,直到我放大图像(这会带来大量的像素要渲染)。

我注意到如果我将图像裁剪为较小的部分并将它们放在ItemsControl中,性能会提升,因为GPU会在每个裁剪的图像上并行运行效果。

是否可以强制GPU并行运行1张图像?

我正在使用DirectX 9.(因为我的应用程序也应该在XP上运行)

降低性能的另一种方法可能是仅对屏幕像素而不是整个像素运行效果。无法找到方法......

1 个答案:

答案 0 :(得分:0)

我的猜测是以显示帧速率应用着色器。尝试使用DrawingBrush绘制它,并按照the MSDN help documentation中的描述将RenderOptions.CachingHint设置为“Cache”。