我已经成功地在 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
这是结果(在底部)——黄色形状失去了平滑的右侧边缘,因为这些像素中的 alpha 现在为 1。我怎样才能获得平滑的相交形状?