在镶嵌一些自交叉多边形时,我没有得到预期的填充 .
例如,使用一些简单的示例代码演示OpenGL细分可以downloaded来自here
并进行一些非常简单的修改:
首先,在第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);
并编译并运行,我得到下面的图像,显示我没有看到第三个对象中的三角形孔 . )
这是没有填充的多边形看起来像......