从顶点数组生成三角形网格的算法

Posted

技术标签:

【中文标题】从顶点数组生成三角形网格的算法【英文标题】:Algorithm for generating triangle meshes from vertex array 【发布时间】:2017-12-05 06:26:35 【问题描述】:

假设我有一组 3D 点。这些点在 x 和 y 轴上均匀分布。因此可以将点视为函数 z = f(x,y)。例如,x 可以来自 0,1,2,y 可以是 0,1,2,在方形网格上总共有 9 个 3D 点。我正在尝试实现一个简单的算法来生成这些点的三角形网格,给定它们的坐标。我对网格生成知之甚少,但我知道我的点在网格上的 x 和 y 维度上是均匀分布的。所以,如果我的观点是这样的: 0 0 0 0 5 0 0 0 0

其中行号代表y坐标,列号代表x坐标,值代表z坐标。这组点应该生成一个三角形网格,看起来像一个方形底金字塔,其中金字塔的峰值位于 (1,1,5)。考虑到这个问题的具体情况,我正在寻找一种简单的算法,我可以编写它来生成这样的网格。

我听说过 Delaunay 三角剖分,但不确定它是否适用于这个问题。谢谢。

【问题讨论】:

【参考方案1】:

一个非常简单的解决方案是考虑每个网格的四个顶点并使用对角线和四个边创建两个三角形。

【讨论】:

以上是关于从顶点数组生成三角形网格的算法的主要内容,如果未能解决你的问题,请参考以下文章

从“三角形汤”中找到唯一的顶点

将 SDF 计算为三角形网格的最有效方法

投影3D网格的2D轮廓算法

如何在OpenGL中计算三角形网格的顶点法线?

如何在OpenGl中计算三角形网格的顶点法线?

算法学习——动态规划之点数值三角形的最小路径