带洞的Unity3D动态网格

时间:2018-06-15 08:26:33

标签: unity3d graphics mesh polygons

从两个顶点列表中动态创建一个带有孔的网格 我目前正在尝试动态创建一个带有洞的网格(2D)。我有一个Vector3顶点列表,包括轮廓和孔的轮廓。

我的问题:

我如何将这两个顶点列表合并为一个网格? enter image description here

更多细节:我有两个重叠的网格,我试图在两者之间做一个布尔差异,创建一个新的网格,最终将取代更大的网格,以摆脱裁剪。实施例

使用Clipper-Library(参见http://www.angusj.com/delphi/clipper.php)没有用,因为它返回了我设置为输入的两组顶点。

我猜我需要以某种方式修复网格的三角形以在外顶点和内顶点之间创建三角形? (网格可以是任何形状/大小,因此找出要合并为三角形的顶点并非易事)。

有人能告诉我如何从两个顶点循环中创建单个网格吗?

1 个答案:

答案 0 :(得分:1)

如果你需要一个通用的布尔算法,这是一个非常难的问题,例如3D Studio Max有两个独立的布尔网格创建器,每个都在不同的对象集中失败。

如果您只需要减去不接触的矩形,对齐的形状,则更简单。对于您的特定情况,您可以加入顶点列表,并填充新的三角形列表 - 您每个四边形需要两个tris,因此八个三角形跨越八个副本。

如果他们开始触摸它会变得有点困难,因为你需要找到交叉点并基本上重新三角化轮廓。