我正在研究切割网格。我到底想要实现的是:
输入 - 两个网格(当然是程序生成的)
输出 - 三个网格(或更多,取决于给定的网格)
A - 这是一个meshA子网格B,
B - 这是网格A和B的共同部分,
C - 它是网格B子网格A。
我正在使用Triangulator,对于给定的顶点集合为我创建三角形。我所要做的就是给他那些顶点,这就是问题所在。是否有任何算法可以帮助我做到这一点?当你看到这张照片的时候,也许你的脑子里浮现出这个想法?我在Unity(C#)工作,所以任何与Unity Tools相关的东西都是有用的。谢谢!
编辑:
我正在使用这个剪辑库:http://sourceforge.net/projects/polyclipping/,一切正常,直到这种情况:
我试图得到差异A-B,它应该看起来像图2中的那个),遗憾的是输出是网格A和网格B,如图1所示。
我做什么:
Clipper c = new Clipper();
c.AddPath(here goes the vertices of mesh A, polyType.Subject, true);
c.AddPath(here goes the vertices of mesh B, polyType.Clip, true);
c.Execute(ClipType.ctDIfference, a list of lists for my output, PolyFillType.NonZero, PolyFillType.NonZero);
我已经尝试更改PolyFillTypes但它没有改变任何内容。在这里,我要求你的建议:)