2

细分一些自相交的多边形时,我没有得到预期的填充。

例如,使用一些简单的示例代码演示 OpenGL tessellation,可以从这里下载

并进行了一些非常简单的修改:
首先,在第 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);

并编译并运行,我得到下面的图像,它显示了我不认为是正确的填充。(我没有看到第三个物体上的三角形孔。) 在此处输入图像描述

这是没有填充的多边形的样子...... 在此处输入图像描述

4

0 回答 0