我想知道反转帧缓冲区中颜色像素的最佳方法是。我知道可以使用glReadPixels()
和glDrawPixels()
,但这些调用的性能影响非常大。
基本上,我正在尝试做的是有一个倒置的彩色十字准线,无论背后是什么,它总是可见的。例如,我有一个任意的alpha蒙版位图或纹理,在绘制场景后渲染时不进行深度测试,并且纹理的蒙版(全alpha)像素下的所有帧缓冲像素都将被反转。
我一直试图用纹理来做这件事,但是我得到了一些奇怪的结果,所有的混合选项我仍然感到困惑。
答案 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);