我使用glReadPixels
获取所选像素的颜色:
GLubyte pixels[4]= {0,0,0,0};
glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
在模拟器上这很好用。但是在真正的iPad上glReadPixels
会返回零而不是第一和第二个组件。
例如,在模拟器上,此代码返回191,147,222,61为RGBA
(虽然看起来它实际上返回GBRA
而不是RGBA
),而在设备上它对于相同的颜色,返回0,0,64,199。看起来第三个组件是alpha,第四个是绿色而不是蓝色和alpha相应的。
如何在设备上获得正确的值? 非常感谢任何想法。
答案 0 :(得分:0)
我建议在阅读像素之前尝试glFlush()
。
也许你已经是。更多上下文可能会有所帮助,例如你在读什么类型的帧缓冲?它附加到浮点纹理?你是否在没有双缓冲的情况下从屏幕缓冲区读取? ...