OpenGL反转帧缓冲像素

5
我想知道在帧缓冲区中反转颜色像素的最佳方法是什么。我知道可以使用 glReadPixels()glDrawPixels()来实现,但这些调用的性能影响非常大。
基本上,我正在尝试创建一个反色的十字准线,无论背景如何都始终可见。例如,我将有一个任意的alpha掩码位图或纹理,在场景绘制后渲染它,然后在纹理的遮罩(完全透明)像素下面的所有帧缓冲像素将被反转。
我一直在尝试使用纹理来实现这一点,但我得到了一些奇怪的结果,而且我发现所有的混合选项仍然很令人困惑。
2个回答

8

尝试使用类似这样的东西:

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

这是正常的做法。 - DJClayworth

2

您觉得怎样:

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

glBlend应该改为glBlendFunc,对吧? - Alec Jacobson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接