我已經成功在OpenGL中繪製了兩個光滑形狀,使用生成三角形條的例程,其最外邊緣線的所有頂點都在alpha 0
處。現在我想要將它們相交,但我似乎總是失去一個形狀的平滑邊緣。下面是我使用的代碼:如何在OpenGL中交叉兩個平滑的形狀?
// 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
Combined Shapes http://img268.imageshack.us/img268/1000/combineshapes.jpg
而這裏的結果(在底部) - 黃色形狀失去了流暢的右手邊,因爲在那些像素的阿爾法現在是1.如何我可以獲得平滑的相交形狀嗎?
感謝'glBlendEquation'提示。不幸的是,我仍然無法使用GL_FUNC_ADD,GL_FUNC_SUBTRACT或GL_FUNC_REVERSE_SUBTRACT。 – 2013-03-15 07:20:27