对象在alpha背景留下痕迹

时间:2017-01-09 23:28:07

标签: opengl glsl textures shader fbo

此行为的标准原因是什么?我有2个相同的缓冲区,有2个网格纹理,预乘alpha和alpha背景:第一个我有背景上的对象,但是当我在这个alpha背景上移动它时,第二个留下了对象跟踪。我无法理解为什么! FBO是相似的。

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:1)

我的错误是我在清除前忘了绑定FBO:

    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
    glBindFramebuffer(GL_FRAMEBUFFER, 0); // WRONG!

    glBindFramebuffer(GL_FRAMEBUFFER, FBO);
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glBindFramebuffer(GL_FRAMEBUFFER, 0); // RIGHT!