2012-02-19 8 views
0

Android OpenGL ES에서 색상 피킹을 구현하려고합니다. 여기왜 glReadPixels 메소드가 항상 RGB (0, 0, 0)를 얻는가

public boolean onTouchEvent(MotionEvent e) { 
    float x = e.getX(); 
    float y = e.getY(); 
    ... 

내가 클릭의 픽셀 정보를 얻으려면 :

public void processPick(GL10 gl){ 
    ByteBuffer pixel = ByteBuffer.allocate(4); 
    pixel.order(ByteOrder.nativeOrder()); 
    gl.glReadPixels((int)clickPosX, (int)clickPosY, 1, 1, GL10.GL_RGB, GL10.GL_UNSIGNED_BYTE, pixel); 
    byte[] b = new byte[3]; 
    pixel.get(b); 
    Log.d("buffer", b[0] + ", "+b[1]+", "+b[2]); 
} 

을하지만 실제로 난 항상 얻을 RGB (0, 0, 0), 무슨 일이있어 여기에

나는 좌표를 얻을 잘못된? 색상을 설정하고 색상을 올바르게 선택하는 방법은 무엇입니까?

누구든지 나를 도와 줄 수 있습니까? 감사!

답변

0

시도해보십시오. gl.glReadPixels ((int) clickPosX, (int) clickPosY, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, 픽셀); 바이트 [] b = 새 바이트 [4];