【发布时间】:2009-02-05 16:53:49
【问题描述】:
我在 QT 应用程序中使用 OpenGL。在某些时候,我正在渲染到 QGLPixelBuffer。我需要获取图像的深度缓冲区,我通常使用 glReadPixels(..., GL_DEPTH_COMPONENT, ...);我尝试将 QGLPixelBuffer 设为当前,然后使用 glReadPixels() 但我得到的只是一张白色图像。
这是我的代码
bufferCanvas->makeCurrent();
[ ...render... ]
QImage snapshot(QSize(_lastWidth, _lastHeight), QImage::Format_Indexed8);
glReadPixels(0, 0, _lastWidth, _lastHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, snapshot.bits());
snapshot.save("depth.bmp");
有什么明显的问题吗?
【问题讨论】: