在使用cuda_gl_interop函数进行设置时,是否可以检索像素缓冲区

Is it possible to retrieve a pixel buffer when setup using the cuda_gl_interop functions?

本文关键字:是否 像素 检索 设置 缓冲区 cuda gl interop 函数      更新时间:2023-10-16

我已经阅读了这个主题,并且正在实现一个并行光线跟踪引擎(目前仅使用光线球体交点),但是我似乎只能在GLUT窗口中显示我的结果,或者直接写入文件,而不能两者都显示。我不知道怎样才能做到这一点。我目前正在设置一个cudaGraphicsResource,并将其映射到GL像素缓冲区对象。由于对OpenGL相对缺乏经验,我不确定如何在CPU上检索像素数据。

编辑:对不起。当我发帖时,我发现了显而易见的glReadPixels例程。将对此进行调查。

我发现像素缓冲区对象被引用到CUDA代码这一事实无关紧要。只需简单地调用glReadPixels(0,0,DIM、DIM、GL_RBGA、GL_UNSIGNED_BYTE和&backetofdata)就足够了。我遇到的问题是,如果使用malloc初始化bucketofdata,并且只有当它被声明为GLubyte bucketofdata[DIM*DIM*sizeof(uchar4)]时,上述调用才会失败。