我是不是需要将渲染缓冲区附加到已经附加了纹理的帧缓冲区?

Posted

技术标签:

【中文标题】我是不是需要将渲染缓冲区附加到已经附加了纹理的帧缓冲区?【英文标题】:Do I need attach renderbuffer to a framebuffer that has a texture attached already?我是否需要将渲染缓冲区附加到已经附加了纹理的帧缓冲区? 【发布时间】:2012-04-15 16:41:47 【问题描述】:

我为屏幕外渲染创建了一个帧缓冲区。 我制作了一个没有设置数据的空纹理。 我没有附加颜色渲染缓冲区,因为有纹理支持。

在代码中:

    //Generate framebuffer, hook up renderbuffer.
    glGenFramebuffers(1, &_frameBufferName);
    glBindFramebuffer(GL_FRAMEBUFFER, _frameBufferName);

    //DON'T Attach texture to framebuffer (RGBA).
    //glGenRenderbuffers(1, &_colorRenderBufferName);        
    //glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderBufferName);    

    //glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA4, _layerWidth, _layerHeight);        
    //glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _colorRenderBufferName);            

    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, _textureName, 0);
    glClear(GL_COLOR_BUFFER_BIT);

它确实有效,但 xCode 分析器总是声称帧缓冲区没有附件。 我这里需要颜色渲染缓冲区吗?

【问题讨论】:

或者在我输出的每一帧之前以某种方式“刷新”纹理? 【参考方案1】:

似乎没有。 http://developer.apple.com/library/ios/DOCUMENTATION/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithEAGLContexts/WorkingwithEAGLContexts.html#//apple_ref/doc/uid/TP40008793-CH103-SW6

【讨论】:

以上是关于我是不是需要将渲染缓冲区附加到已经附加了纹理的帧缓冲区?的主要内容,如果未能解决你的问题,请参考以下文章

渲染到纹理时出现黑屏

Opengl 和 Webgl:从附加到当前帧缓冲区的纹理中采样

纹理和渲染缓冲区是不是在帧缓冲区对象上共享相同的空间?

是否可以将默认渲染缓冲区附加到 FBO?

opengl - 比我设置的更小的帧缓冲纹理?

WebGL:在带有深度模板纹理附件的帧缓冲区上未清除颜色