2010-04-14 49 views
2

CUDA可以用来生成OpenGL纹理吗?我知道这可以通过将CUDA结果读回到系统内存中,然后将其加载到纹理中来完成......但我想找到一种方法来保存此副本...... CUDA可以用于生成纹理吗?CUDA结果可以存储在OpenGL可访问的纹理中吗?

+0

我不知道CUDA,但我知道OpenCL可以做到这一点。 – 2010-04-14 21:22:04

回答

2

是,CUDA拥有API函数允许OpenGL互

使用cudaGLRegisterBufferObject(GLuint bufObj)注册到CUDA,然后用cudaGLMapBufferObject(void ** devPtr, GLuint bufObj)来获得设备内存指针来操作你的CUDA籽粒缓冲区。

完成后,您将取消映射cudaGLUnmapBufferObject(GLuint bufObj)然后显示。

完整说明在CUDA工具包中下载的CUDA编程指南中。

3

整理。您不能直接从内核写入纹理,但可以将内核的结果复制到纹理的映射cudaArray,而无需将其复制回系统内存。看看cudaGraphicsGLRegisterImage(),cudaGraphicsMapResources()cudaGraphicsSubResourceGetMappedArray()

+0

另请注意,这些是新的3.0版本。其他GL-Dx将被弃用 – fabrizioM 2010-04-15 07:29:33

相关问题