4

最も外側のエッジ ラインのすべての頂点がalpha 0. 今、それらを交差させたいと思っていますが、常に 1 つの形状の滑らかなエッジを失っているようです。私が使用しているコードは次のとおりです。

// 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 になったためです。交差した滑らかな形状を取得するにはどうすればよいでしょうか?

4

2 に答える 2

0

このスニペットのようなものが必要です:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);
glEnable(GL_BLEND);

重要な要素は glEnable(GL_BLEND) だと思います。

于 2013-03-14T19:11:01.077 に答える