与OpenGl重叠的行

时间:2019-07-04 21:27:51

标签: opengl line opacity opengl-compat

我有两条相互交叉的线,并且我将这些线的不透明度设置为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();

这是此的输出:code output

由于线的不透明度设置为0.7,所以线相交的部分应该比线的其余部分暗一些。如何获得这种效果?

1 个答案:

答案 0 :(得分:0)

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