负责opengl绘制的控件是openglwidget,不能把FBO和其附件的设置放在initalizeGL函数里执行,只能在里面gen,配置需要放在paintGL函数中。
另外opengl的纹理有4字节对齐,直接从FBO的纹理附件读取数据到mat时会导致图像有奇怪的歪斜和灰度。解决这个问题的方法是在调用glGetTexImage之前使用glPixelStorei(GL_PACK_ALIGNMENT,1)进行设置。如果在其他位置使用glPixelStorei函数,不会起作用
如果纹理出现歪斜和灰度错误首先考虑字节对齐问题!