使用OpenGL 2在Android上从帧缓冲区对象导出位图时,我遇到以下问题。
我将图像加载到OpenGL中并显示在屏幕上。加载的图像比实际屏幕大,因此我做了一些矩阵操作以使其适合屏幕。
然后我尝试将图像导出回原始大小的位图并保存或在屏幕上显示。为了实现这一点,我创建了一个帧缓冲对象,将其绑定到当前的OpenGL上下文," draw"纹理并使用glReadPixels
创建Bitmap
。
这是原始图像(当然适合调整大小),当我将其加载到OpenGL时,我可以在屏幕上正确看到它:
这是导出的图像(当然适合调整大小):
如您所见,导出的图像有一些较暗的区域。我错过了任何标准配置吗?
我也在适合屏幕的较小纹理上遇到此问题。但是较暗的区域有点不同 - 相反可以看到更亮的点。
我确信这不是我的矩阵操作,因为当从着色器中删除矩阵乘法时,我仍然会遇到这个问题。
答案 0 :(得分:0)
添加glDisable(GL_DITHER)
可以解决问题。
谢谢@RetoKoradi。