DDG Discrete Surfaces
原课件来自:https://brickisland.net/ddg-web/
离散曲面模型
在离散微分几何中,曲面主要有两种模型:
- 单纯形模型(Simplicial) (图左)
- 曲面由simplicial 2-manifolds(单纯形2-流形)构成
- 天然适配discrete exterior calculus(离散外积分)
- 网格模型(Nets) (图左)
- 曲面由分段整数格(piecewise integer lattices)组成
- 天然适配discrete integrable systems(离散可积系统)
在应用中,单纯形模型更为常见,也是本课程的重点。
单纯形曲面(Simplicial Surface)
简单来说,单纯形曲面可以理解为一个“三角形网格”(triangle mesh)。然而,通过更严谨的定义,我们可以将“三角形网格”与微分几何的概念联系起来。
与光滑曲面类似,单纯形曲面也需要满足一定的正则性条件,以确保其几何性质良好:
- 拓扑条件(topology):网格的连通性必须满足流形(manifold)性质。
- 每条边最多属于两个三角形(边界边则属于一个)。
- 每个顶点周围的三角形必须构成一个单连通的环(边界顶点则为路径)。
- 几何条件(geometry):顶点的坐标必须构成一个单纯形浸入(simplicial immersion),即局部单射映射,避免自交或退化。
通过这样的定义,离散的三角形网格就能在微分几何的框架下进行严格的数学分析。
抽象单纯形曲面(Abstract Simplicial Surface)
抽象单纯形曲面是指一个满足流形条件的单纯形2-复形(manifold simplicial 2-complex),其定义如下:
- 基本结构:
- 最高维的单纯形是三角形(2-单纯形)
- 每条边(1-单纯形)必须属于两个三角形(若在边界上则属于一个)
- 每个顶点(0-单纯形)周围的三角形必须构成一个单连通的环(边界顶点则为路径)
- 数学表示:通常记作 $ K = (V, E, F) $,其中:
- $ V $:顶点集合
- $ E $:边集合
- $ F $:面(三角形)集合
核心思想:抽象单纯形曲面仅描述连接关系(connectivity),不涉及具体的几何形状或空间嵌入。这种纯粹的拓扑结构为后续引入几何映射(如单纯形浸入)提供了基础框架。
单纯形映射(Simplicial Map)
单纯形映射的数学核心在于定义域的构造。我们需要明确:抽象单纯形复形本身仅包含离散的顶点、边和面(作为集合的子集),但映射 $ f $ 需要作用于整个几何化的“曲面”上,包括单纯形内部的点。以下是关键步骤:
从抽象复形到几何载体
- 抽象单纯形复形 $ K = (V, E, F) $ 仅描述连接关系(如“顶点 $ v_1 $ 和 $ v_2 $ 通过一条边相连”)。
- 但映射 $ f $ 需要处理的是每个单纯形(如三角形)内部的点,而不仅仅是顶点。
重心坐标的作用
-
通过重心坐标 $ (t_0, t_1, t_2) $,我们将每个抽象三角形 $ \sigma = {v_i, v_j, v_k} $ 关联到一个标准单纯形(即二维空间中的单位三角形):
\[\sigma \mapsto \left\{ (t_0, t_1, t_2) \mid t_0 + t_1 + t_2 = 1, \, t_i \geq 0 \right\}\] -
例如:顶点 $ v_i $ 对应 $ (1, 0, 0) $,边 $ v_i v_j $ 对应 $ (t, 1-t, 0) $,三角形内部点则为 $ (t_0, t_1, t_2) $。
定义域
定义:单纯形映射 $ f $ 的定义域,是通过把抽象三角网格的每个三角形”撑开”成标准三角形后,再把它们按照原来的连接方式粘起来形成的连续曲面。
两步构造法:
- 无交并(Disjoint Union)
- 把网格的每个三角形都当作一个独立的”纸片”
- 此时相邻三角形虽然共享边,但这些边还是分开的(就像两片没粘好的折纸)
- 沿共享边粘合(Gluing)
- 把那些在抽象网格中本应相连的边(如图中的边jk)严格对齐粘合
- 粘合规则:共享边的对应点必须完全重合(比如两个三角形的中点要粘在同一个位置)
核心思想:单纯形映射的域是抽象复形的“几何实现”,通过重心坐标和粘合操作,将离散的组合结构转化为连续的几何对象。这一过程是离散微分几何中模拟光滑曲面的关键步骤。
离散微分(Discrete Differential)
- 离散映射 $ f $ 的性质
- $ f $ 是一个离散的、$ \mathbb{R}^n $-值的 0-形式,即它为每个顶点 $ i $ 赋予一个坐标向量 $ f_i \in \mathbb{R}^n $。
- 离散微分 $ df $ 的定义
- $ df $ 是 $ f $ 的离散外导数,作为 1-形式,它为每条有向边 $ ij $ 赋予一个值:
\((df)_{ij} := f_j - f_i\) - 几何解释:$ (df)_{ij} $ 就是连接顶点 $ i $ 和 $ j $ 的边向量(从 $ f_i $ 指向 $ f_j $)。
- $ df $ 是 $ f $ 的离散外导数,作为 1-形式,它为每条有向边 $ ij $ 赋予一个值:
- 与光滑理论的类比
- 在光滑曲面中,微分 $ df $ 作用于切向量 $ X $,输出方向导数 $ df(X) $。
- 在离散情况下,边 $ ij $ 可视为“离散切向量”,而 $ (df)_{ij} = f_j - f_i $ 直接给出了该方向的变化量。
- 反对称性
-
对反向边 $ ji $,有:
\[(df)_{ji} = f_i - f_j = - (df)_{ij}\]这与经典微分几何中 1-形式的定向一致性一致。
-
若将 $ df $ 视为光滑 1-形式的离散版本,则:
\[(df)_{ij} \approx \int_{\sigma_{ij}} df = f_j - f_i\]离散微分 $ df $ 用简单的边向量 $ f_j - f_i $,在离散网格上复现了光滑微分的关键性质。
Immersion, Discrete Immersion与Simplicial Immersion
参数化曲面 $ f $ 是浸入,若其微分 $ df $ 处处非退化(即 $ df(X) = 0 $ 当且仅当 $ X = 0 $)。
几何意义:
- 曲面无“折叠”或“退化”区域,保证切空间处处维数正确。
- 是定义曲率、法向量等微分量的基础条件。
离散浸入(Discrete Immersion)
问题:
- 若仅要求离散微分 $ df $ 的边向量非零(即边长 $ |f_j - f_i| > 0 $),仍可能丢失光滑浸入的关键性质。
分支点(Branch Points):
- 在左边的离散网格中,围绕顶点 $0$ 的三角形拼接得很好,如果你沿着 $0$ 走一圈,刚好走完一次,总角度是 $2\pi$。
- 在右边的映射图中,通过映射 $f$,这些点被映射到 $f_0, f_1, \dots, f_9$。现在围绕 $f_0$ 的面 会绕中心多转几圈,即围绕 $f_0$ 的总角度大于 $2\pi$。
- 这意味着这个映射在 $f_0$ 处是 locally many-to-one(局部多值),在离散域中绕 $f_0$ 走一圈,映射后会绕 $f_0$ 转多圈。这正是所谓的 branch point(类似复分析中全纯函数出现 $z \mapsto z^n$ 的情形)。
单纯形浸入(Simplicial Immersion)
修正定义:
- 要求单纯形映射 $ f $ 是局部单射(locally injective),即每个顶点邻域(star)在映射下无重叠或翻转。
- 等价条件:
- 每个顶点邻域的三角形在 $ \mathbb{R}^n $ 中嵌入(无自交或退化)。
- 所有三角形面积非零,且相邻三角形法向量方向一致。
示例:
- 合法:两个相邻三角形共享边,且张开角度 $ \theta \in (0, 2\pi) $。
- 非法:
- 边长和面积为0
- dihedral角度为0
- 不满足locally injective
必要非充分条件:
边长、面积、角度非零仅是单纯形浸入的必要条件,但还需局部单射性。
离散高斯映射(Discrete Gauss Map)
定义:
对于离散浸入曲面,高斯映射即为每个三角形的单位法向量 $ N_f \in \mathbb{R}^3 $(属于对偶离散0-形式)。
几何表现:
- 将每个三角形法向量可视作单位球面上的点(如图)。
- 连接相邻法向量的弧线对应于共享边的正交法向族(即所有包含该边的三角形的法向量在球面上的轨迹)。
局限性:
- 仅定义在三角形面片层级,无法直接给出顶点或边的法向。
顶点法向的传统问题
-
均匀平均面法向:$ N_v = \frac{1}{ F(v) } \sum_{f \in F(v)} N_f $ - 问题:结果依赖网格剖分密度,几何意义不明确(如图中不同细分导致法向偏移)。
基于向量面积的离散法向(Discrete Vector Area)
光滑理论回顾:
向量面积 $ \int_\Omega N \, dA = \frac{1}{2} \int_{\partial \Omega} f \times df $。
离散版本:
-
对顶点 $ v $ 的邻域 $ \Omega $,积分 $ N \, dA $ 转化为对邻域边界的求和:
\[\frac{1}{3} \int_\Omega N \mathrm{d}A = \frac{1}{6} \int_{\partial \Omega} f \times \mathrm{d}f = \frac{1}{6} \sum_{ij \in \partial \Omega} \int_{e_{ij}} f \times \mathrm{d}f\] \[N_v = \frac{1}{2} \sum_{ij \in \partial \Omega} f_i \times f_j\] -
关键性质:
- 与顶点坐标 $ p $ 无关(仅依赖邻域顶点位置)。
其他自然定义
- 面积加权:适合需要物理精确性的场景(如曲率计算)。
- 角度加权:适合几何处理(如网格平滑、去噪),因其对网格质量不敏感。
Discrete Exterior Calculus on Curved Surfaces
- 光滑曲面:外微积分在 $ \mathbb{R}^n $ 中定义后,通过调整 霍奇星算子(Hodge star) 推广到弯曲曲面,该算子编码了几何信息(长度、角度、面积等)。
- 离散曲面:单纯形曲面(如三角网格)的每个面片本身是平的,因此可直接沿用 $ \mathbb{R}^2 $ 中的离散霍奇星算子公式,无需修改!
我们可以直接将平面中的离散霍奇星算子公式(DDG (11): Discrete Exterior Calculus)应用于曲面上。
- 内蕴性:霍奇星算子的作用仅依赖于曲面的 内蕴几何(如边长、内角),与曲面如何嵌入 $ \mathbb{R}^3 $ 无关。
- 平坦性:每个三角形局部是欧几里得的,因此 $ \mathbb{R}^2 $ 的离散公式可直接应用。
关键性质
- 局部性:每个算子的计算仅依赖相邻单元(如顶点邻域或边邻域)。
- 兼容性:与离散外导数 $ d $ 结合后,可构建离散拉普拉斯算子等微分工具。
- 几何无关性:即使曲面在 $ \mathbb{R}^3 $ 中弯曲,公式仍仅用原始边长和内角计算。
离散 Laplace-Beltrami 算子
在光滑曲面中,Laplace-Beltrami 算子定义为:
\[\Delta = \star d \star d \phi\]在离散下,通过组合 $ \star $ 和 $ d $,我们得到著名的 cotan 公式,实现了连续拉普拉斯算子的自然离散化:
\[(\Delta u)_i = \frac{1}{2} \sum_{j \in \mathcal{N}(i)} (\cot \alpha_{ij} + \cot \beta_{ij}) (u_j - u_i)\]其中:
- $ \mathcal{N}(i) $ 是顶点 $ i $ 的邻接顶点集合,形成$e_{ij}$
- $ \alpha_{ij} $ 和 $ \beta_{ij} $ 是边 $ ij $ 的两个对角
Cotan 公式的几何解释
- 权重意义:$ \frac{1}{2}(\cot \alpha_{ij} + \cot \beta_{ij}) $ 实际上表示边 $ ij $ 的对偶边长
- 内在性质:只依赖于局部边长和内角,与曲面在空间中的弯曲方式无关
- 保角性:cotan 权重自然地捕捉了曲面的共形结构
离散曲面的重建问题
在微分几何中,许多几何对象可以通过其微分量唯一确定(需初始条件):
- 平面曲线:由曲率函数 + 初始点/方向确定
- 空间曲线:由曲率和挠率确定
- 光滑曲面:由第一/第二基本形式确定
- 凸曲面:由黎曼度量唯一确定
如果给定一个离散高斯映射(即所有三角形法向),能否重建顶点位置?
离散重建算法:
- 边方向确定:相邻三角形法向 $ N_1 $, $ N_2 $ 的叉积给出共享边方向 $ N_1 \times N_2 $
- 角度计算:通过边方向的点积计算三角形内角
- 三角形重建:根据三边方向+内角确定三角形形状(尺度未定)
- 全局拼接:将所有三角形按共享边匹配,恢复完整网格
光滑情形的局限性
| 特性 | 离散曲面 | 光滑曲面 | |———————|—————————-|—————————-| | 重建所需数据 | 法向 + 连接关系 | 法向 + 参数化(如弧长参数) | | 唯一性 | 唯一(模去刚体变换) | 需额外条件才唯一 | | 核心约束 | 组合结构(连接关系) | 微分方程的可积条件 |
以平面曲线为例:
- 给定法向场:$ N(s) = (\cos\theta(s), \sin\theta(s)) $
- 重建问题:需解微分方程 $ \frac{df}{ds} = R_{90^\circ}N(s) $($ R_{90^\circ} $为旋转矩阵)
- 关键缺陷:
除非已知弧长参数 $ s $,否则 $ \theta(s) $ 可任意重参数化 → 无穷多解(如图1)
从度量重建曲面
光滑曲面(Cohn-Vossen定理):
- 凸光滑曲面由其黎曼度量唯一确定(差一个刚体运动)
- 度量 $ g $ 编码了曲面的所有内蕴几何(长度、角度、面积等)
离散曲面(Alexandrov-Connelly定理):
- 凸多面体由其边长唯一确定
- 非凸情形不成立:存在不同构的多面体具有相同边长
重建网格算法
Chern等(2018)的”Shape from Metric”方法:
- 输入:离散度量(所有边长 $ \ell_{ij} $)
- 核心步骤:
- 构造离散浸入条件(Discrete Immersion)
- 引入离散自旋结构(Discrete Spin Structure)
- 求解非线性优化问题,使边长匹配目标度量
- 输出:顶点坐标 $ f_i \in \mathbb{R}^3 $
总结:离散微分几何通过单纯形映射和组合结构,在三角网格上重建了光滑曲面的微分几何框架——从离散微分、霍奇星算子到Laplace-Beltrami算子,其核心在于利用边长和内角等内蕴几何量保持微分几何的本质特性。离散情形的独特刚性(如从法向或度量重建曲面)揭示了组合结构与几何的深刻联系,为几何处理算法提供了既严谨又高效的理论基础,也彰显了”离散逼近连续”在计算应用中的强大优势。
Enjoy Reading This Article?
Here are some more articles you might like to read next: