自己交差するポリゴンをテッセレーションするときに、期待どおりの塗りつぶしが得られません。
たとえば、ここからダウンロードできる OpenGL テッセレーションを示すいくつかの簡単なサンプル コードを使用します。
いくつかの非常に簡単な変更を行います。
まず、272 行目で、自己交差ポリゴンの x & y 座標を ... に変更します。
GLdouble star[5][6] = { {1.0, 2.0, 0, 1, 0, 0}, // 0: x,y,z,r,g,b
{0.0, 2.0, 0, 0, 1, 0}, // 1:
{3.0, 0.0, 0, 1, 0, 1}, // 2:
{0.0, 4.0, 0, 1, 1, 0}, // 3:
{-1.0, 0.0, 0, 0, 0, 1} }; // 4:
296 行目で、塗りつぶしルールを EvenOdd に変更します...
gluTessProperty(tess, GLU_TESS_WINDING_RULE, GLU_TESS_WINDING_ODD);
コンパイルして実行すると、正しい塗りつぶしとは思えない次の画像が表示されます。(3 番目のオブジェクトの三角形の穴は見えません。)
塗りつぶしのないポリゴンは次のようになります...