为什么用glReadPixel()无法读取Z缓冲区?

时间:2013-12-15 05:26:00

标签: c++ opengl

我正在使用opengl渲染程序进行一些模拟。不幸的是,模型redering代码不可用。我正在做的是首先使用该程序加载和渲染模型,然后可以选择和转换模型,然后尝试获取包括z缓冲区和法线向量的片段信息以进行进一步的模拟。但是当我使用glReadPixel()获取z-buffer时,所有的值都是1.0,甚至是模型区域的片段。我知道它应该介于0.0和1.0之间。

因为我不知道模型是如何在程序中呈现的,所以任何人都可以帮助解决问题,在哪种渲染情况下无法正确读取z缓冲区。

1 个答案:

答案 0 :(得分:1)

我的猜测:你可能正在做一切正确但在你继承的代码中某处深度缓冲区被清除或丢失。例如,模型渲染代码可以将其内容呈现给FBO,然后仅传递颜色附件。