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 に答える