0

我使用以下代码来检索深度缓冲区:

FloatBuffer pixels = ByteBuffer
    .allocateDirect(4).order(ByteOrder.nativeOrder()).asFloatBuffer();

GLES20.glReadPixels(pointx, pointy, 1, 1, 
    GLES20.GL_DEPTH_COMPONENT16, GLES20.GL_FLOAT, pixels);

问题是,无论我要求哪一点,像素都给我 0.0;

我在中启用了以下功能onSurfaceCreated

GLES20.glEnable(GLES20.GL_DEPTH_TEST);
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
GLES20.glDepthFunc(GLES20.GL_LEQUAL);
GLES20.glDepthMask(true);
GLES20.glClearColor(1, 1, 1, 1);

这几天我一直在为这个问题苦苦挣扎!请帮忙。

4

1 回答 1

4

根据OpenGL ES 2.0文档,glReadPixels()不支持读取深度缓冲区。glGetError()返回什么?

于 2011-06-10T08:45:43.163 回答