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