在 CUDA 中使用 OpenGL 深度信息

Posted

技术标签:

【中文标题】在 CUDA 中使用 OpenGL 深度信息【英文标题】:Use OpenGL Depth information in CUDA 【发布时间】:2012-08-25 01:35:46 【问题描述】:

我知道 CUDA 4.2 的 CUDA 互操作性不支持 GL_DEPTH_COMPONENT,但我想知道 CUDA 5 或未来版本是否会支持 GL_DEPTH_COMPONENT。

目前我正在使用 fbo 将深度信息渲染到纹理。然后我使用这个纹理作为源在其他纹理中渲染它,并使用具有 CUDA 互操作性的最后一个颜色纹理。

我也在尝试使用glCopyPixels 来制作副本。但两种解决方案都需要大量内存(两个大纹理,用于深度和颜色)。

我也可以使用着色器,但我不想混合太多技术。

在 CUDA 上获取 OpenGL 深度数据的最有效方法是什么?

【问题讨论】:

【参考方案1】:

您是否尝试过使用带有深度附件的渲染缓冲区,然后通过 cudaGraphicsGLRegisterImage 注册它?

此函数支持将渲染缓冲区作为目标,因此您应该能够访问深度信息

【讨论】:

【参考方案2】:

2020 年的情况仍然是深度组件无法通过 OpenGL 互操作性子系统在 CUDA 中使用。

【讨论】:

以上是关于在 CUDA 中使用 OpenGL 深度信息的主要内容,如果未能解决你的问题,请参考以下文章

深度测试

深度学习部署笔记: CUDA 驱动API, 检查功能

GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练

个人电脑如何搭建深度学习/机器学习开发环境?

OpenGL ES之“深度测试”与“模板测试”的使用流程

是否可以在opengl中使用深度缓冲区渲染3D纹理