细分一些自相交的多边形时,我没有得到预期的填充。
例如,使用一些简单的示例代码演示 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);
并编译并运行,我得到下面的图像,它显示了我不认为是正确的填充。(我没有看到第三个物体上的三角形孔。)
这是没有填充的多边形的样子......