1. 程式人生 > >基於Qt的OpenGL可編程管線學習(5)- FBO的使用

基於Qt的OpenGL可編程管線學習(5)- FBO的使用

qt opengl shader fbo

FBO: Frame Buffer Object,默認繪制在1號FBO中,自定義的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的紋理

本文出自 “不會飛的紙飛機” 博客,請務必保留此出處http://douzhq.blog.51cto.com/12552184/1931029

基於Qt的OpenGL可編程管線學習(5)- FBO的使用