【问题标题】:Count something in Unity Shader and output to script在 Unity Shader 中计数并输出到脚本
【发布时间】:2018-12-14 02:31:54
【问题描述】:

最近我想用 Unity Shader 在 Unity 中做一些图像处理。

有一项任务是对像素进行计数。例如,统计图像中所有黑色像素的个数,并将其输出到脚本。

我知道这可以通过 for 迭代在脚本中实现。我想知道是否有某种方法可以在着色器中完成这项工作。

【问题讨论】:

  • 我不认为你可以。
  • 是的,但我正在尝试输出纹理中的计数。
  • 我猜 Draco18s 想说的是,我们认为没有办法让“普通”组件脚本与着色器通信/接收着色器的输出值。

标签: unity3d


【解决方案1】:

片段(像素)着色器无法访问来自其他片段的任何值,因为它们本质上是并行运行的,因此即使您可以将输出值存储为,也不可能访问相同的变量(即计算像素)纹理。

【讨论】:

    【解决方案2】:

    计数可以并行。重点是如何传递计数结果。我通过下采样来做到这一点。我将图像分割成网格并在每个网格内进行计数。每个网格的结果通过片段着色器保存和输出。我重复这个直到我得到一个 1x1 的纹理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 2022-06-12
      • 2021-09-16
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多