gpt4 book ai didi

opengl - 使用 OpenGL readPixels 的真实深度值

转载 作者:行者123 更新时间:2023-12-01 01:27:41 26 4
gpt4 key购买 nike

我想从我的相机 View 中检索深度缓冲区以用于 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 ,但我想将深度值放入主内存,而不是在着色器中。

最佳答案

尝试使用 gluUnproject() 在像以前一样从 Z 缓冲区检索归一化深度值之后。您需要提供模型 View 矩阵、投影矩阵和视口(viewport)值,您可以使用 glGetDoublev() 检索它们和 glGetIntegerv() .

关于opengl - 使用 OpenGL readPixels 的真实深度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com