1

我用 openGL 创建了一个图像并用 glReadPixels() 读取它。现在,我想分析这些数据。我想并行化在每个像素上运行的循环并通过 CUDA 检查其颜色。问题是我需要将数据从 GPU 传递到 CPU,然后再传递到 GPU。

有一种方法可以在不通过 CPU 的情况下将数据从 glReadPixles() 传递到 CUDA?

纹理记忆可以帮助我吗?

4

1 回答 1

2

您需要使用CUDA-OpenGL 互操作 API

图形和成像部分中有许多可能感兴趣的 CUDA 示例代码。

我建议从gaussian blur sample开始,因为我认为其中的处理流程与您所描述的很接近(在显示之前修改每个像素)。

您不使用glReadPixels,因为这确实会将数据带回 CPU。相反,您使用 CUDA 注册一个 openGL 对象,以便它可以由 CUDA 操作,然后在显示之前取消注册它。

于 2013-11-07T12:24:06.220 回答