三角网格是最常用的三维模型表述方式,基本结构为:
- 顶点 (Vertex),决定空间位置
- 面片 (Facet),描述拓扑结构
- 边 (Edge)。
三角剖分就是将离散的点连入三角网格中。也可以说是把曲面剖开成一块块三角形。
下图为非delaunay三角剖分:
而Delaunay三角剖分给出了一个“好的”三角网格的定义,它的优秀特性是空圆特性和最大化最小角特性,这两个特性避免了狭长三角形的产生,也使得Delaunay三角剖分应用广泛。
- 空圆特性:点集合p内任意一个点都不在𝑃 内任意一个三角面片的外接圆内。
- 最大化最小角特性:找到每个三角形内最小的锐角,并将其最大化。
空圆特性,任意3个点的外接圆不包含第4个点,即任意3个点(三角形)的外接圆是空的。这种形式的剖分产生的最小角比不满足空圆特性的最小角大。
下图为delaunay三角剖分:
Lawson Flip Algorithm:将非delaunay剖分转化为delaunay剖分。
如下图,该翻转即去掉左图对角线,连接右图对角线。两条对角线即两种不同的剖分方法。每次flip都是在增大三角剖分的最小角
增量delaunay三角剖分算法,在已Delaunay三角化的网格中加入一点P,只需要删除所有外接圆包含此点的三角形,并连接P与所有可见的点(即连接后不会与其他边相交),则形成的网格仍然满足Delaunay三角剖分的条件。时间复杂度为O(nlogn)
- 添加两个足够远的点𝑝−1, 𝑝−2,以保证𝑝−1, 𝑝−2 位于所有三角形的外接圆外。三角形𝑝0 𝑝−1 𝑝−2 包含所有的点。初始的时候仅有一个空的三角形。
- 依次添加新的点𝑝𝑟,检测相关三角形的空圆特性。(插入一个点会影响到周围的一块区域)
对于𝑝𝑟存在以下两种情况:
- 情况1: 分别连接 𝑝𝑟𝑝𝑖,𝑝𝑟𝑝𝑗, 𝑝𝑟𝑝𝑘,分别检查与三角形𝑝𝑟𝑝𝑖𝑝𝑘, 𝑝𝑟𝑝𝑗𝑝𝑘, 𝑝𝑟𝑝𝑖𝑝𝑘相邻的3个三角形的空圆特性
- 情况2: 分别连接 𝑝𝑟𝑝𝑙,𝑝𝑟𝑝𝑘,分别检查与三角形𝑝𝑟𝑝𝑗𝑝𝑘, 𝑝𝑟𝑝𝑗𝑝𝑙, 𝑝𝑟𝑝𝑙𝑝𝑖, 𝑝𝑟𝑝𝑘𝑝𝑖 相邻的4个三角形的空圆特性
将delaunay三角剖分应用在三维上即delaunay四面体剖分。首先我们由点云构建Delaunay四面体,然后将其标记为目标物体的的内部和外部,这里得到的是体数据,无法直接得到面片。
delaunay四面体剖分+马尔可夫优化->三维网格
Delaunay四面体剖分的基本理论—边界一致,设Σ是一个三围区域W边界的离散化-曲面网格。边界一致的问题是要求生成一个符合Σ的四面体网格T,即Σ是一个由Γ元素组成的组合体。T中可以有额外的点(Steiner点),但是这种点的数目应该被限制得越少越好。