对象在 alpha 背景上留下痕迹

Object leaves a trail on alpha background

此行为的标准原因是什么?我有 2 个相同的缓冲区,带有 2 个带有预乘 alpha 和 alpha 背景的网格纹理:在第一个中,我在背景上有对象,但是当我在这个 alpha 背景上移动它时,第二个在它自己后面留下对象痕迹。我不明白为什么! FBO 是相似的。

谢谢!

我的错误是我在清除之前忘记绑定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!