从两个顶点列表动态创建一个带有孔的网格
我目前正在尝试动态创建一个带有孔的网格(2D)。我有一个轮廓和孔轮廓的 Vector3 顶点列表。
我的问题:
How would I go about merging these two lists of vertices into a single mesh?
更多细节:我有两个重叠的网格,我试图在两者之间进行布尔差异,以创建一个新的网格,最终取代较大的网格,以消除剪切。例子
使用 Clipper 库(请参阅http://www.angusj.com/delphi/clipper.php http://www.angusj.com/delphi/clipper.php)没有用,因为它返回与我设置为输入的相同的两组顶点。
我猜我需要以某种方式修复网格的三角形,以在外部顶点和内部顶点之间创建三角形? (网格可以是任何形状/大小,因此找出将哪些顶点组合成三角形并不是一件容易的事)。
谁能告诉我如何从两个顶点循环中创建一个网格?
如果您需要通用布尔算法,这是一个非常困难的问题,例如 3D Studio Max 有两个单独的布尔网格创建器,每个创建器在不同的对象集上失败。
如果您只需要减去不接触的矩形、对齐的形状,那就更简单了。对于您的具体情况,您可以只加入顶点列表,并填充新的三角形列表 - 每个四边形您需要两个三角形,因此八个三角形横跨八个顶点。
如果它们开始接触,事情就会变得有点困难,因为您需要找到交点并基本上重新对轮廓进行三角测量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)