【问题标题】:opengl invert framebuffer pixelsopengl反转帧缓冲区像素
【发布时间】:2011-02-09 01:23:43
【问题描述】:

我想知道在帧缓冲区中反转颜色像素的最佳方法是。我知道glReadPixels()glDrawPixels() 是可能的,但这些调用对性能的影响非常大。

基本上,我想要做的是有一个反色十字准线,无论它背后是什么,它始终可见。例如,我有一个任意的 alpha 蒙版位图或纹理,在绘制场景后无需深度测试即可渲染,并且纹理的蒙版(完整 alpha)像素下的所有帧缓冲区像素都将被反转。

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

【问题讨论】:

    标签: c opengl pixel framebuffer


    【解决方案1】:

    试试this 之类的东西:

    glEnable(GL_COLOR_LOGIC_OP);
    glLogicOp(GL_XOR);
    // render geometry
    glDisable(GL_COLOR_LOGIC_OP);
    

    【讨论】:

    • 这是正常的做法。
    【解决方案2】:

    怎么样:

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

    【讨论】:

    • glBlend 应该是 glBlendFunc,不是吗?
    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2013-12-19
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多