簡體   English   中英

glReadPixels 返回錯誤值

[英]glReadPixels returns wrong values

我嘗試獲得渲染像素的顏色。

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,為什么???

glReadPixels文檔說:

glPixelStore 設置的存儲參數,如 GL_PACK_LSB_FIRST 和 GL_PACK_SWAP_BYTES,會影響數據寫入 memory 的方式。

所以檢查你的glPixelStore配置。 也就是說,您的字節順序是向后的。

0x0000803F => 4.600602988224807e-41
0x3F800000 => 1.0

有用的鏈接:

使用 GL_RGB 而不是 GL_RED 作為格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM