基于Qt的OpenGL可编程管线学习- FBO的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Qt的OpenGL可编程管线学习- 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可编程管线学习- FBO的使用的主要内容,如果未能解决你的问题,请参考以下文章

基于Qt的OpenGL可编程管线学习(19)- 雾

基于Qt的OpenGL可编程管线学习- 多重纹理

基于Qt的OpenGL可编程管线学习(11)- 高斯模糊

基于Qt的OpenGL可编程管线学习(11)- 高斯模糊

基于Qt的OpenGL可编程管线学习- 探照灯

基于Qt的OpenGL可编程管线学习- 探照灯