这里我有一个OpenGL纹理:GLuint tex1;
现在我想将tex1用作CUDA中的搜索表,所以也许我应该把它翻译成CUDA纹理。
众所周知,CUDA纹理作为一种纹理<>来自CUDABindTextureToArray。
那么,如何从OpenGL纹理中获取CUDA纹理?
答案 0 :(得分:6)
首先应使用cudaGraphicsGLRegisterImage
函数注册纹理。
cudaGraphicsResource *resource;
cutilSafeCall(cudaGraphicsGLRegisterImage(&resource,text1,GL_TEXTURE_2D, cudaGraphicsMapFlagsNone));
然后你可以得到这个资源的数组引用。
cudaArray* array;
cudaGraphicsMapResources (1, &resource, 0);
cudaGraphicsSubResourceGetMappedArray (&array, resource, 0, 0);
之后,您可以使用array
并将其绑定到CUDA纹理。