glBlendFunc()的负面颜色?

4 c++ opengl

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

有人可以给这两个值吗?

And*_*nck 5

画一条白线并使用glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);别忘了启用GL_BLEND


Str*_*ger 0

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

glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_INVERT);
Run Code Online (Sandbox Code Playgroud)

您也可以使用 GL_ XOR,具体取决于您想要实现的目标。如果您想将帧缓冲区恢复到绘制线条之前的状态,GL_ XOR 非常有用。只需再次使用 GL_XOR 再次绘制同一条线((a xor b) xor b == a)。这是 CAD 世界中的常见技巧。