Я успешно нарисовал две гладкие фигуры в OpenGL, используя процедуру, которая генерирует треугольную полосу, крайняя крайняя линия которой имеет все вершины в точке alpha 0
. Теперь я хочу пересечь их, но мне всегда кажется, что я теряю гладкие края одной формы. Вот код, который я использую:
// Draw: smooth black shape as normal
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
// Draw: smooth black shape into alpha channel
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
glBlendFunc(GL_DST_ALPHA, GL_SRC_ALPHA);
// Draw: Yellow overlay shape with black shape's alpha
// Reset blending modes for rest of program
И вот результат (внизу) — желтая фигура теряет свой гладкий правый край, потому что альфа в этих пикселях теперь равна 1. Как я могу получить гладкую пересекающуюся форму?