glBlendFunc()的负面颜色?

时间:2009-12-09 14:00:43

标签: c++ opengl

我希望我的线条用负面颜色绘制(从线下的屏幕中获取),我只是不明白混合是如何工作的,查看文档等,测试了50种组合等等。开始认为它根本不可能......

有人可以给出这两个值吗?

2 个答案:

答案 0 :(得分:5)

画一条白线并使用glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);不要忘记启用GL_BLEND

答案 1 :(得分:0)

您应该为此目的使用逻辑操作。不混合。 所以你要做的就是打电话:

glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_INVERT);

您也可以使用GL_ XOR,具体取决于您想要实现的目标。如果要在帧绘制发生之前的状态下准确恢复帧缓冲区,则GL_XOR非常有用。再次使用GL_XOR第二次绘制相同的行((a xor b)xor b == a )。这是CAD世界的常见技巧。