在我的OpenGL项目中,我使用GLUTesselator将凹多边形(来自外部源)分割为三角形,然后将其通过VBO馈送到OpenGL中。现在,我正在考虑添加DirectX后端。
我可以使用第三方三角剖分器,但很难找到合适的一个。有Poly2Tri,但它仅适用于没有重复项、没有接触等的简单多边形。否则它会卡住。由于我的多边形来自外部源,所以很难进行调整。GLUTesselator在这里表现得非常完美;从GLU文档中可以看出:输入轮廓可以相交、自交或退化。此外,支持具有多个重合顶点的多边形。
我认为可以使用模板缓冲区绘制没有孔的多边形(参见4),但这不提供缓存的可能性。
我看到有人建议在DirectX中使用GLUTesselator(参见5,11年前)。GLUTesselator是纯软件库吗?可以将其与DirectX一起使用吗,还是有更好的选择?