glReadPixels (Depth_Component) не работает в Android OpenGL ES20 - PullRequest
0 голосов
/ 10 июня 2011

Я использую следующий код для получения буфера глубины:

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);

Я боролся с этой проблемой уже несколько дней! Пожалуйста помоги.

1 Ответ

4 голосов
/ 10 июня 2011

Согласно документам OpenGL ES 2.0 , glReadPixels () не поддерживает чтение буфера глубины. Что возвращает glGetError () ?

...