2

我有兴趣在 webgl 中执行一些密集计算,所以它在 GPU 上运行。

大多数文档都谈到了如何渲染图形。

我正在完成非常简单的任务:对于给定的图像,将其转换为灰度,并找到局部最大值的坐标(比其邻居更亮的像素)。

我想在 webgl 着色器中运行“循环”,但是将局部最大值像素的 (x, y) 输出到 javascript 世界。可行吗?最好的方法是什么,以便通过并行处理像素来表现良好?

4

1 回答 1

3

您可以使用着色器渲染全屏四边形,该着色器在某个正方形中从纹理(图像)中采样像素(如 4x4 或 16x16 分辨率,受最大纹理样本数量限制)并输出最大值作为片段颜色 + 最大像素纹理坐标(如果需要) 到较低分辨率的纹理。所以你会缩小图像。您可以对其进行迭代以实现全局最大值。

阅读此http://www.lcg.ufrj.br/Cursos/GPUProg/GPGPU_Reductions

于 2012-11-21T19:12:20.950 回答