代码之家  ›  专栏  ›  技术社区  ›  jay.lee

OpenGL反转帧缓冲像素

  •  5
  • jay.lee  · 技术社区  · 15 年前

    我想知道在帧缓冲区中反转颜色像素的最佳方法是。我知道这是可能的 glReadPixels() glDrawPixels() 但这些电话的性能冲击相当大。

    基本上,我想做的是有一个倒置的颜色交叉头发,它总是可见的,无论后面是什么。例如,我有一个任意的alpha遮罩位图或纹理,在绘制场景后让它在没有深度测试的情况下进行渲染,并且纹理的遮罩(全alpha)像素下的所有帧缓冲像素都将被反转。

    我一直在尝试用纹理来做这个,但是我得到了一些奇怪的结果,还有所有的混合选项,我仍然觉得很困惑。

    2 回复  |  直到 12 年前
        1
  •  8
  •   genpfault    15 年前

    给一些类似的东西 this 尝试:

    glEnable(GL_COLOR_LOGIC_OP);
    glLogicOp(GL_XOR);
    // render geometry
    glDisable(GL_COLOR_LOGIC_OP);
    
        2
  •  2
  •   Nils Pipenbrinck    15 年前

    怎么样:

    glEnable (GL_BLEND); 
    glBlend (GL_ONE_MINUS_DST_COLOR, GL_ZERO);