2011-05-29 247 views
1

我嘗試獲取呈現的像素顏色。glReadPixels返回錯誤的值

gl.glColor3f(1f, 0, 0); 
//draw 
gl.glReadPixels(lastX - pw/2, MyCanvas.this.getHeight() 
      - (lastY - ph/2), pw, ph, GL.GL_RED, GL.GL_FLOAT, 
      pixelBuffer); 
float r, g, b; 
r = pixelBuffer.getFloat(); 
g = pixelBuffer.getFloat(); 
b =pixelBuffer.getFloat(); 
pixelBuffer.rewind(); 
System.out.println(r+" "+g+" "+b); 

有真正的純紅顏色在屏幕上,但glReadPixels返回到R很奇怪值4.6006E-41,爲什麼???

+2

你確定你可以得到紅,綠,藍的出你'GL.GL_RED'通過後? – 2011-05-29 17:58:18

+0

緩衝區實際上可以保存所有三個值,但只有紅色被存儲,其他g和b被清零 – 2011-05-30 09:41:23

+0

這不是文檔所說的。 – 2011-05-30 14:01:18

回答