将OpenGL纹理绑定到OpenCL缓冲区

时间:2017-06-21 13:01:37

标签: opengl interop opencl

我正在开发一些项目,需要使用OpenGL进行一些渲染,然后传递输出纹理以进行OpenCL后处理。问题是我们的内核使用缓冲区而不是图像,最终输出也应该是缓冲区,因此不能选择更改内核以使用image2d而不是缓冲区。

当然,将OpenGL缓冲区/纹理映射到OpenCL上的相同类型是一件容易的事,但似乎没有直接的方法将OpenGL输出(纹理或渲染缓冲对象)映射到OpenCL缓冲区而无需额外的步骤/内存分配为将GL纹理数据复制到PBO或CL图像到缓冲区等。能够绑定GL缓冲区对象,因为帧缓冲输出会很好,但到目前为止我还没有找到这样的东西。我认为GL_TEXTURE_BUFFER是渲染目标,但OpenGL禁止将其与framebuffer一起使用。

所以,问题是 - 是否有任何方法可以将OpenGL直接渲染到顶点缓冲区对象中,如果没有 - 将OpenGL纹理转换为OpenCL缓冲区的最有效(时间/内存)方式是什么?

0 个答案:

没有答案