【问题标题】:Unity3D dynamic mesh with holeUnity3D 动态网格带孔
【发布时间】:2018-11-25 01:44:06
【问题描述】:

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

我的问题:

如何将这两个顶点列表合并到一个网格中?

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

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

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

谁能告诉我如何从两个顶点循环中创建一个网格?

【问题讨论】:

    标签: unity3d graphics mesh polygons


    【解决方案1】:

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

    如果您只需要减去不接触的矩形对齐形状,则更简单。对于您的具体情况,您可以加入顶点列表,并填写新的三角形列表 - 每个四边形需要两个 tris,因此八个三角形延伸到八个顶点。

    如果它们开始接触会变得有点困难,因为您需要找到交点并基本上重新对轮廓进行三角测量。

    【讨论】:

    • 我已经知道它们不会接触,因为我的算法正在为图中的每个循环创建网格(这意味着如果它们接触,则会创建 3 个网格,我可以过滤掉不正确的网格)。我只需要了解如何从两组顶点创建单个网格(用于“外部”多边形)
    猜你喜欢
    • 1970-01-01
    • 2013-01-25
    • 2021-03-08
    • 2020-11-19
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2021-08-16
    • 2020-08-27
    相关资源
    最近更新 更多