5

我已经弄清楚如何通过使用变换反馈(或通过渲染到纹理)将高阶函数映射过滤转换为 OpenGL 代码。我也希望能够使用fold,但我不知道这将如何工作。让我们假设该操作是关联的,所以我不在乎它是左折叠还是右折叠或一些不确定的混合。

折叠操作示例:

  • 计算包含一组点的最小 AABB(折叠顶点数组)。
  • 计算纹理中最亮的值(折叠纹理)。

或者如果没有 OpenCL 或 CUDA,这不可行吗?

4

1 回答 1

5

如果您的操作是关联的,您可以通过重复渲染到较小的纹理来减少/折叠数据。在每一遍中,你结合了前一遍中的一些纹素。您可以通过将其绑定为片段着色器的纹理来读取上一次传递的数据。

例如,如果您想计算 128x128 值的图像的平均值,您可以首先渲染到 64x64 的纹理,其中目标纹理中的每个纹素在输入纹理中平均 4 个纹素。

一个典型的例子是模糊图像。

于 2012-12-29T13:18:03.077 回答