3

这里我有一个 OpenGL 纹理:GLuint tex1;

现在我想使用 tex1 作为 CUDA 中的搜索表,所以也许我应该将它转换为 CUDA 纹理。

众所周知,CUDA 纹理作为纹理<> 的一种,来自于一个 CUDABindTextureToArray。

那么,如何从 OpenGL 纹理中获取 CUDA 纹理呢?

4

1 回答 1

7

cudaGraphicsGLRegisterImage你应该首先用函数注册你的纹理。

cudaGraphicsResource *resource;
cutilSafeCall(cudaGraphicsGLRegisterImage(&resource,text1,GL_TEXTURE_2D, cudaGraphicsMapFlagsNone));

然后你可以得到这个资源的数组引用。

cudaArray* array;

cudaGraphicsMapResources (1, &resource, 0);
cudaGraphicsSubResourceGetMappedArray (&array, resource, 0, 0);

之后,您可以使用您的array并将其绑定到 CUDA 纹理。

于 2012-05-28T06:19:45.417 回答