对象在 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!
此行为的标准原因是什么?我有 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!