0

我有两条相互交叉的线,我已将这些线的不透明度设置为0.7。这是代码:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glLineWidth(7);
glBegin(GL_LINES);
glColor4f(0.9, 0.3, 0.4, 0.7);
glVertex2f(-1.0f, 0.8f);
glVertex2f(1.0f, 0.8f);
glEnd();
glLineWidth(10);
glBegin(GL_LINES);
glColor4f(0.9, 0.3, 0.4,0.7);
glVertex2f(-0.89f, -1.0f);
glVertex2f(-0.89f, 1.0f);
glEnd();

这是这个的输出:代码输出

由于线条不透明度设置为0.7线条相交的部分,因此应该比线条的其余部分暗一点。我怎样才能得到这样的效果?

4

1 回答 1

0

所以这是深度测试,是有道理的。它只是覆盖了 zbuffer 中的相同位置。但是关于预乘 alpha 的注释仍然很重要。使用您最初指定的搅拌机,您必须将 rgb 值乘以 alpha 以获得您想要的颜色。

于 2019-07-05T18:16:44.493 回答