【问题标题】:Object leaves a trail on alpha background对象在 Alpha 背景上留下痕迹
【发布时间】:2017-01-09 23:28:07
【问题描述】:

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

谢谢!

【问题讨论】:

  • 不清除缓冲区
  • 没错,你是对的!我的错误是在我的第二个 FBO 绑定之前清除的。
  • 这个效果其实不错。
  • 是的!当我制作我的 Photoshop 时,我会记住它)))

标签: opengl glsl textures shader fbo


【解决方案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!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 2019-04-15
    • 2011-09-09
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多