【发布时间】:2011-10-03 06:14:48
【问题描述】:
我想从我的相机视图中检索 3D 过滤应用程序的深度缓冲区。目前,我正在使用 glReadPixels 来获取深度组件。而不是 [0,1] 值,我需要深度缓冲区的真实值,或者在世界坐标中到相机的真实距离。
我尝试通过 GL_DEPTH_BIAS 和 GL_DEPTH_SCALE 转换深度值,但没有成功。
glReadPixels(0, 0, width_, height_, GL_DEPTH_COMPONENT, GL_FLOAT, depth_buffer);
glGetDoublev(GL_DEPTH_BIAS, &depth_bias); // Returns 0.0
glGetDoublev(GL_DEPTH_SCALE, &depth_scale); // Returns 1.0
我意识到这类似于Getting the true z value from the depth buffer,但我想将深度值放入主内存,而不是在着色器中。
【问题讨论】:
标签: opengl depth-buffer