Перекрывающиеся линии с OpenGl - PullRequest
0 голосов
/ 05 июля 2019

У меня есть две линии, которые пересекают друг друга, и я установил непрозрачность для этих линий на 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 голосов
/ 05 июля 2019

Так что это был тест глубины, имеет смысл.Он просто перезаписал то же самое место в zbuffer.Но примечание о предварительно умноженной альфе все еще имеет значение.Используя блендер, который вы указали изначально, вам придется умножить значения rgb на альфа, чтобы получить нужный вам цвет.

...