我怀疑glReadPixel没有返回正确的深度值。为什么?

时间:2016-02-24 18:14:02

标签: java opengl jogl glreadpixels

在我的程序中,我在画布上加载了网格模型,并最初使用glReadPixels读取其深度值。

此代码在display function:

中的gl.glFlush()之后编写
FloatBuffer depth_mann = FloatBuffer.allocate(width*height);

...

gl.glPixelStorei(GL2.GL_PACK_ROW_LENGTH, width);
gl.glPixelTransferf(GL2.GL_DEPTH_SCALE, 1.0f);
gl.glPixelTransferf(GL2.GL_DEPTH_BIAS, 0.f); 
gl.glReadPixels(0, 0, width, height, GL2.GL_DEPTH_COMPONENT, GL2.GL_FLOAT, depth_mann); 

后来我访问了glUnproject中使用的深度值,并将得到的z值分配给一组顶点,并添加了一个偏移量,顶点将位于网格模型的顶部。升高的。换句话说,我试图想出一个充气功能。但是,并非所有顶点都被提升,经过一些测试后,glReadPixels返回的深度值并不总是相同。

现在,我试图弄清楚四天出了什么问题,但我认为现在是时候寻求帮助了。我觉得有些东西我应该知道,我不知道,你的帮助填补这些遗失的部分将不胜感激。提前致谢!

0 个答案:

没有答案