opengl反转帧缓冲像素

jay*_*lee 5 c opengl framebuffer pixels invert

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

基本上,我正在尝试做的是有一个倒置的颜色十字线,无论背后是什么,它总是可见的.例如,我有一个任意的alpha蒙版位图或纹理,让它在绘制场景后无需深度测试就渲染,并且纹理的蒙版(完整alpha)像素下的所有帧缓冲像素都将被反转.

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

gen*_*ult 8

尝试这样的东西:

glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
// render geometry
glDisable(GL_COLOR_LOGIC_OP);
Run Code Online (Sandbox Code Playgroud)