最近我想在Unity中使用Unity Shader进行一些图像处理。
有一项任务是对像素进行计数。例如,计算图像中所有黑色像素的数量,然后将其输出到脚本。
我知道这可以通过for
迭代的脚本来实现。我想知道是否有某种方法可以在着色器中完成这项工作。
答案 0 :(得分:1)
片段(像素)着色器无法访问其他片段中的任何值,因为它们本质上是并行运行的,因此即使您可以将输出值存储为以下值,也无法访问相同的变量(即,计算像素)纹理。
答案 1 :(得分:0)
计数可以并行。要点是如何传输计数结果。我通过缩减采样来做到这一点。我将图像分成网格,并在每个网格内进行计数。保存每个网格的结果,并使用片段着色器输出。我重复一遍,直到获得1x1纹理。