-1
glReadPixels
인 픽셀의 RGBA 값을 읽으려고합니다. 내 문제는 픽셀을 읽으려고 할 때마다 이상한 값을 얻는다는 것입니다. 픽셀을 읽을 때 I RGB_888의 설정에 반대, 그래서 그게 함께 할 수있는 뭔가가 가정으로 eglChooseConfig
RGB_565 설정,하지만 난 것으로 기대하는 경우에만 발생x 또는 y가 0이 아닌 경우 glReadPixels가 올바르지 않음
ByteBuffer pb = ByteBuffer.allocateDirect(400);
pb.order(ByteOrder.nativeOrder());
pb.position(0);
GLES20.glReadPixels(0, 0, 10, 10, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, pb);
byte b [] = new byte[400];
pb.get(b); //Here I get [0, 0, 31, -1, 0, 0, 31, 1....] which is the correct value
ByteBuffer pt = ByteBuffer.allocateDirect(4);
pt.order(ByteOrder.nativeOrder());
pt.position(0);
GLES20.glReadPixels(1, 0, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, pt);
b= new byte[4];
pt.get(b); //Here I get [-84, 100, -44, -81]
이 어긋남에 : 나는 다음과 같은 디버그 코드를 작성했습니다 전체 그림을 읽고 반환 된 배열을 보는 것 외에 올바른 픽셀을 읽으려면 할 수있는 방법이 있습니다.
시도했지만 작동하지 않았습니다. 나는이 매개 변수를 실제로 이해하지 못한다. 그러나 https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml에서 수집 한 것은 읽기 픽셀의 반환 형식을 지정하는 데 사용된다는 것이다. 저장된 픽셀의 형식이 아닙니다. 그 맞습니까? – eirasf