mic*_*nko 1 java opengl jogl endianness 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);
Run Code Online (Sandbox Code Playgroud)
屏幕上有真正的纯红色,但glReadPixels返回到非常奇怪的值4.6006E-41,为什么???
glPixelStore设置的存储参数(如GL_PACK_LSB_FIRST和GL_PACK_SWAP_BYTES)会影响数据写入内存的方式.
所以检查你的glPixelStore
配置.也就是说,您的字节顺序是向后的.
0x0000803F => 4.600602988224807e-41
0x3F800000 => 1.0
Run Code Online (Sandbox Code Playgroud)
有用的链接:
归档时间: |
|
查看次数: |
1218 次 |
最近记录: |