FBO: Frame Buffer Object,默认绘制在1号FBO中,自定义的FBO是可以做读写操作的。
Qt中有关于FBO的类,QOpenGLFrameBufferObject
FBO的创建
m_FrameBufferObj = new QOpenGLFramebufferObject(w, h, QOpenGLFramebufferObject::Depth);
FBO的使用
bool result = 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的纹理
转载于:https://blog.51cto.com/douzhq/1931029