我该如何使用HSLS像素着色器高效计算图像中所有像素的总和?我对Pixel Shader 2.0很感兴趣,因为我可以将其作为WPF着色器效果调用。
有一个更简单的解决方案,不需要使用着色器:将图像作为纹理加载,创建mipmap链并读取最后一个mipmap(1x1像素)的值。这个技巧在游戏中被广泛地使用,例如计算场景的平均亮度(以应用HDR色调映射)。如果你注重简单和效率而不是准确性,那么这是一个很棒的技巧。
Pix_Value*10之和进行求和。
WPF中的效果更适合产生视觉效果。听起来你想将它们用于不同类型的计算,为此你需要将图像结果视为数据,这需要使用RenderTargetBitmap,在软件中完成。
你可能想看看这些专为GPGPU设计的项目。
OpenTK 我不知道OpenTK中OpenCL绑定的状态。其他技术,如DirectCompute和CUDA也值得一试。