FBO: Frame Buffer Object,默认绘制在1号FBO中,自定义的FBO是可以做读写操作的。

绘制到自定义的FBO,然后显示出来,如下图所示:

Qt中有关于FBO的类,QOpenGLFrameBufferObject


FBO的创建

m_FrameBufferObj=newQOpenGLFramebufferObject(w,h,QOpenGLFramebufferObject::Depth);


FBO的使用

boolresult=m_FrameBufferObj->bind();if(result){OpenGLCore->glClearColor(1.0,0.0,1.0,1.0);OpenGLCore->glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);draw();m_ColorBuffer=m_FrameBufferObj->texture();m_FrameBufferObj->release();}

调用bind()后就可以在FBO上绘制,texture()可以取出FBO的纹理