如何使用 HSLS 像素着色器有效地计算图像中所有像素的总和?我对 Pixel Shader 2.0 感兴趣,我可以将其作为 WPF 着色器效果调用。
问问题
2799 次
3 回答
7
有一个不使用着色器的更简单的解决方案:将图像加载为纹理,创建 mipmap 链并读回最后一个 mipmap(1x1 像素)的值。此技巧在游戏中广泛用于计算,例如,场景的平均亮度(以应用 HDR 色调映射)。如果您重视简单性和效率而不是准确性,这是一个很好的技巧。
于 2010-07-15T14:21:14.137 回答
3
假设您想对图像中的 r/g/b 通道值求和(并假设您可以破坏原始像素) - 这是我的部分解决方案:
- 每 10 个像素将计算 10 个相邻像素的平均颜色,并将此平均颜色放在图像上。
- 然后在CPU端和
像素值*10
每 10 个像素。
在这种情况下,与仅在 CPU 端求和像素值相比,我们得到了大约 10 倍的加速。
于 2010-09-01T08:36:06.183 回答