2

自己交差するポリゴンをテッセレーションするときに、期待どおりの塗りつぶしが得られません。

たとえば、ここからダウンロードできる 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 番目のオブジェクトの三角形の穴は見えません。) ここに画像の説明を入力

塗りつぶしのないポリゴンは次のようになります... ここに画像の説明を入力

4

0 に答える 0