由CUDA填充的OpenGL纹理只包含旧的内存内容

时间:2013-12-13 01:42:21

标签: c++ opengl cuda interop textures

我即将尝试Cuda和OpenGL互操作性。我用OpenGL(普通的texture_2d)渲染画布几何体,然后我生成了两个texture_2d对象。第一个texture_2d包含原始图像数据。它显示正常,然后我想使用这个opengl纹理作为cuda中的源纹理。

我希望Cuda根据原始图像数据(newColor = 1.f - originalColor)执行负彩色图像,并将结果存储在第二个texture_2d对象中。

我尝试了simpleCUDA2GL示例和本教程:http://3dgep.com/?p=2082但我看到的只是gpu上的旧纹理内存内容,当我将第二个texture_2d对象绑定到我的着色器时。

所以我想询问某人是否有一个可行的(可能是cuda 5.5)示例(尽可能简单,使用opengl纹理(不是pbos)),他可以分享这些示例或者有关我的问题的详细教程。