在 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 深度信息的主要内容,如果未能解决你的问题,请参考以下文章