所有像素的高效像素着色器总和

luv*_*ere 7 c# wpf hlsl pixels pixel-shader

如何使用HSLS像素着色器有效地计算图像中所有像素的总和?我对Pixel Shader 2.0很感兴趣,我可以调用它作为WPF着色器效果.

The*_*ler 6

有一个更简单的解决方案,不使用着色器:将图像作为纹理加载,创建一个mipmap链并读回最后一个mipmap(1x1像素)的值.这个技巧在游戏中广泛用于计算,例如,场景的平均亮度(为了应用HDR色调映射).如果您重视简单性和效率而不是准确性,这是一个很好的技巧.


Kri*_*is -1

WPF 中的效果更适合产生视觉效果。听起来您想将它们用于不同类型的计算,为此您需要将图像结果视为数据,这需要 RenderTargetBitmap ,无论如何这都将在软件中完成。您可能想看看这些为 GPGPU 设计的项目。

加速器

OpenTK我不知道 OpenTK 中 OpenCL 绑定的状态。DirectCompute 和 CUDA 等其他技术也可能值得一看。