opengl反转帧缓冲像素

时间:2010-04-17 01:50:46

标签: c opengl framebuffer pixels invert

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

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

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

2 个答案:

答案 0 :(得分:8)

尝试this之类的内容:

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

答案 1 :(得分:2)

怎么样:

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