第3章:微分几何与拓扑

本章从微分几何和拓扑学的角度深入探讨3D mesh的数学性质。我们将学习如何在离散网格上计算曲率、测地线等连续几何概念,理解网格的拓扑不变量,并掌握基于微分算子的网格处理技术。这些理论工具是现代几何处理算法的基础,在网格优化、特征提取、形状分析等任务中发挥着关键作用。

3.1 离散微分几何基础

3.1.1 从连续到离散

微分几何研究光滑曲面的局部和全局性质,而3D mesh是分片线性的离散结构。离散微分几何的核心挑战是如何在网格上定义和计算传统的微分量。

基本概念映射:

  • 连续曲面 → 三角网格
  • 光滑函数 → 顶点上的标量场
  • 切空间 → 顶点的1-ring邻域
  • 微分算子 → 有限差分近似

3.1.2 顶点的1-ring邻域

顶点 $v_i$ 的1-ring邻域是理解局部几何的基础:

      v_j
       /\
      /  \
     /    \
    /      \
v_k -------- v_i -------- v_l
    \      /
     \    /
      \  /
       \/
      v_m

关键量的定义:

  • Voronoi区域面积 $A_i$:顶点 $v_i$ 的"控制区域"
  • 边权重 $w_{ij}$:边 $(v_i, v_j)$ 的几何权重
  • 角度和 $\theta_i = \sum_{j \in N(i)} \theta_{ij}$

3.1.3 离散外微分

在网格上,我们使用离散外微分(DEC)框架来推广微分形式:

0-形式(标量场):定义在顶点上 $$f: V \rightarrow \mathbb{R}$$ 1-形式(向量场):定义在边上 $$\omega: E \rightarrow \mathbb{R}$$ 2-形式(流量):定义在面上 $$\Omega: F \rightarrow \mathbb{R}$$ 外微分算子: $$d^0: \Omega^0 \rightarrow \Omega^1, \quad d^1: \Omega^1 \rightarrow \Omega^2$$

3.1.4 离散梯度

对于顶点函数 $f$,其在三角形 $T=(v_i, v_j, v_k)$ 上的梯度为: $$\nabla f|_T = \frac{1}{2A_T} \sum_{i} f_i (v_{i+1} - v_{i-1})^{\perp}$$ 其中 $(v)^{\perp}$ 表示将向量 $v$ 在三角形平面内逆时针旋转90度。

3.1.5 离散散度

向量场 $X$ 的散度在顶点 $v_i$ 处定义为: $$(\text{div} X)_i = \frac{1}{2A_i} \sum_{j \in N(i)} (\cot \alpha_{ij} + \cot \beta_{ij}) \langle X, v_j - v_i \rangle$$ 其中 $\alpha_{ij}$ 和 $\beta_{ij}$ 是边 $(v_i, v_j)$ 对面的两个角。

3.2 高斯曲率与平均曲率计算

3.2.1 曲率的直观理解

曲率描述曲面偏离平面的程度:

  • 高斯曲率 $K$:内蕴曲率,描述曲面的局部"弯曲程度"
  • 平均曲率 $H$:外在曲率,描述曲面的"平均弯曲方向"

主曲率 $\kappa_1, \kappa_2$ 与高斯、平均曲率的关系: $$K = \kappa_1 \cdot \kappa_2, \quad H = \frac{\kappa_1 + \kappa_2}{2}$$

3.2.2 离散高斯曲率

角度缺陷法(Angle Deficit)

对于内部顶点 $v_i$: $$K_i = \frac{2\pi - \sum_{j} \theta_{ij}}{A_i}$$ 其中 $\theta_{ij}$ 是顶点 $v_i$ 处相邻面的夹角,$A_i$ 是混合Voronoi面积。

Gauss-Bonnet定理的离散版本: $$\sum_{i \in V_{\text{int}}} K_i A_i + \sum_{i \in V_{\text{bnd}}} \kappa_g^i l_i = 2\pi \chi(M)$$

3.2.3 离散平均曲率

Cotangent公式

平均曲率法向量(mean curvature normal): $$H_i \mathbf{n}_i = \frac{1}{2A_i} \sum_{j \in N(i)} (\cot \alpha_{ij} + \cot \beta_{ij})(v_j - v_i)$$ 平均曲率标量: $$H_i = \frac{1}{4A_i} \sum_{j \in N(i)} (\cot \alpha_{ij} + \cot \beta_{ij}) ||v_j - v_i|| \cos \phi_{ij}$$ 其中 $\phi_{ij}$ 是边向量 $(v_j - v_i)$ 与法向量 $\mathbf{n}_i$ 的夹角。

3.2.4 主曲率和主方向

通过构造形状算子矩阵 $S$,可以计算主曲率和主方向:

  1. 投影到切平面
  2. 构造 $2 \times 2$ 形状算子矩阵
  3. 特征值为主曲率 $\kappa_1, \kappa_2$
  4. 特征向量为主方向

3.2.5 曲率的应用

  • 特征线提取:沿主曲率方向追踪
  • 网格分割:基于曲率的区域生长
  • 简化指导:保持高曲率区域的细节
  • 形状描述子:曲率直方图、形状指数

3.3 测地线与最短路径算法

3.3.1 测地线的定义

测地线是曲面上两点间的局部最短路径,满足测地曲率为零: $$\kappa_g = 0$$ 在离散网格上,精确测地线可能穿过三角形内部,需要特殊算法处理。

3.3.2 Dijkstra算法(图上最短路)

最简单的近似:将网格视为图,计算边权重和:

# 伪代码
def dijkstra(mesh, source):
    dist = {v: inf for v in mesh.vertices}
    dist[source] = 0
    heap = [(0, source)]

    while heap:
        d, u = heappop(heap)
        for v in neighbors(u):
            new_dist = d + edge_length(u, v)
            if new_dist < dist[v]:
                dist[v] = new_dist
                heappush(heap, (new_dist, v))
    return dist

优点:简单快速 缺点:路径被限制在边上,误差可达 $O(h)$

3.3.3 MMP算法(精确测地线)

Mitchell-Mount-Papadimitriou算法计算精确的测地距离:

  1. 窗口传播:维护每条边上的"窗口"结构
  2. 窗口合并:处理窗口相交和遮挡
  3. 复杂度:$O(n^2 \log n)$

关键数据结构:

Window = {
    source: 起始点
    interval: 边上的区间 [a, b]
    distance_function: 到source的测地距离函数
}

3.3.4 Fast Marching算法

基于Eikonal方程的数值解法: $$||\nabla u|| = 1$$ 在三角形 $T$ 上的局部更新规则: $$u_C = \min_{P \in AB} (||P - C|| + u_P)$$ 算法步骤

  1. 初始化:源点距离为0,其他为∞
  2. 传播:按距离递增顺序更新顶点
  3. 局部求解:在每个三角形内求解Eikonal方程

3.3.5 热方法(Heat Method)

Crane等人提出的基于热扩散的测地距离计算:

Step 1:求解热方程 $$(\Delta - \frac{1}{t}\text{Id})u = \frac{1}{t}\delta_s$$ Step 2:计算归一化梯度场 $$X = -\frac{\nabla u}{||\nabla u||}$$ Step 3:求解Poisson方程 $$\Delta \phi = \nabla \cdot X$$ 优势:预计算分解后可实时查询,适合多源点场景

3.3.6 测地线的应用

  • 网格参数化:测地极坐标
  • 形状对应:测地距离作为形状描述子
  • 路径规划:机器人导航、游戏AI
  • 纹理映射:沿测地线展开

3.4 网格上的拉普拉斯算子

3.4.1 拉普拉斯算子的重要性

拉普拉斯算子 $\Delta$ 是微分几何中最重要的算子之一,它连接了几何、分析和物理:

  • 几何意义:测量函数偏离局部平均值的程度
  • 物理意义:描述扩散、传导等过程
  • 谱分析:特征值和特征函数揭示形状的内在性质

连续拉普拉斯-贝尔特拉米算子: $$\Delta f = \text{div}(\nabla f)$$

3.4.2 Cotangent拉普拉斯

最常用的离散拉普拉斯算子,具有良好的收敛性: $$(\Delta f)_i = \frac{1}{2A_i} \sum_{j \in N(i)} (\cot \alpha_{ij} + \cot \beta_{ij})(f_j - f_i)$$ 矩阵形式: $$L = D^{-1}W$$ 其中:

  • $W_{ij} = -(\cot \alpha_{ij} + \cot \beta_{ij})$ (非对角元素)
  • $W_{ii} = -\sum_{j \neq i} W_{ij}$ (对角元素)
  • $D_{ii} = 2A_i$ (质量矩阵)

3.4.3 其他离散化方案

组合拉普拉斯(Graph Laplacian): $$(\Delta_G f)_i = \sum_{j \in N(i)} (f_j - f_i)$$ 归一化拉普拉斯: $$(\Delta_N f)_i = \frac{1}{|N(i)|} \sum_{j \in N(i)} (f_j - f_i)$$ 各向异性拉普拉斯: 考虑边的方向性权重,用于特征保持的处理。

3.4.4 拉普拉斯的性质

对称性: $$\langle Lf, g \rangle = \langle f, Lg \rangle$$ 半正定性: $$\langle Lf, f \rangle \geq 0$$ 零空间: 常函数在零空间中,连通网格的零空间维度为1。

与曲率的关系: $$\Delta \mathbf{x} = 2H\mathbf{n}$$

3.4.5 谱分解

拉普拉斯的特征值问题: $$L\phi_k = \lambda_k M\phi_k$$ 其中 $M$ 是质量矩阵。

特征值性质

  • $0 = \lambda_0 < \lambda_1 \leq \lambda_2 \leq ...$
  • $\lambda_1$ (Fiedler值)反映网格的连通性
  • 特征值增长率与维度相关

特征函数的意义

  • $\phi_0$:常函数
  • $\phi_1, \phi_2, \phi_3$:近似线性坐标函数
  • 高阶特征函数:捕捉高频细节

3.4.6 拉普拉斯的应用

网格平滑: $$\mathbf{x}^{(t+1)} = \mathbf{x}^{(t)} + \lambda \Delta \mathbf{x}^{(t)}$$ 参数化: 最小化Dirichlet能量: $$E(u) = \frac{1}{2}\langle u, Lu \rangle$$ 形状描述子

  • Heat Kernel Signature (HKS)
  • Wave Kernel Signature (WKS)
  • Global Point Signature (GPS)

网格编辑: 保持拉普拉斯坐标的变形: $$\min_{\mathbf{x}'} ||L\mathbf{x}' - \delta||^2$$

3.5 拓扑不变量与欧拉特征数

3.5.1 网格的拓扑性质

拓扑研究在连续变形下保持不变的性质:

  • 连通性:网格是否为一个整体
  • 亏格(genus):网格中"洞"的数量
  • 边界:开放vs封闭网格
  • 可定向性:是否有一致的法向量定义

3.5.2 欧拉特征数

欧拉特征数是最基本的拓扑不变量: $$\chi = V - E + F$$ 其中 $V, E, F$ 分别是顶点、边、面的数量。

与亏格的关系

  • 封闭可定向曲面:$\chi = 2 - 2g$
  • 有边界曲面:$\chi = 2 - 2g - b$

其中 $g$ 是亏格,$b$ 是边界环数。

3.5.3 亏格计算

算法步骤

  1. 计算欧拉特征数 $\chi = V - E + F$
  2. 计算连通分量数 $c$
  3. 计算边界环数 $b$
  4. 亏格 $g = \frac{2c - \chi - b}{2}$

实际考虑

def compute_genus(mesh):
    V, E, F = len(mesh.vertices), len(mesh.edges), len(mesh.faces)
    chi = V - E + F

    # 计算连通分量
    components = compute_connected_components(mesh)
    c = len(components)

    # 计算边界
    boundary_loops = find_boundary_loops(mesh)
    b = len(boundary_loops)

    genus = (2*c - chi - b) / 2
    return genus

3.5.4 同调群

同调理论提供了更精细的拓扑描述:

0-同调 $H_0$:连通分量

  • $\beta_0 = \dim(H_0)$ = 连通分量数

1-同调 $H_1$:独立环路

  • $\beta_1 = \dim(H_1) = 2g + b - 1$(连通情况)

2-同调 $H_2$:空腔

  • $\beta_2 = \dim(H_2)$(通常为0或1)

贝蒂数(Betti numbers): $$\chi = \beta_0 - \beta_1 + \beta_2$$

3.5.5 持续同调

持续同调追踪拓扑特征在不同尺度下的演化:

滤流(Filtration): $$K_0 \subseteq K_1 \subseteq ... \subseteq K_n = K$$ 持续图(Persistence Diagram): 记录拓扑特征的"出生"和"死亡"时间。

应用

  • 形状简化:去除短寿命的拓扑特征
  • 特征检测:识别显著的拓扑结构
  • 形状匹配:比较持续图的相似性

3.5.6 Reeb图

Reeb图是基于标量函数的拓扑骨架:

构造过程

  1. 选择标量函数 $f: M \rightarrow \mathbb{R}$(如高度函数)
  2. 等值线 $f^{-1}(c)$ 的连通分量定义等价关系
  3. Reeb图是商空间 $M/\sim$

关键点类型

  • 极小值:Reeb图的叶子节点
  • 极大值:Reeb图的叶子节点
  • 鞍点:Reeb图的分叉点

应用

  • 形状骨架提取
  • 拓扑简化
  • 形状检索和匹配

3.6 高级话题:Reeb图与Morse理论、谱网格处理

3.6.1 Morse理论

Morse理论研究流形上光滑函数的临界点与拓扑的关系。

Morse函数: 函数 $f: M \rightarrow \mathbb{R}$ 是Morse函数,如果所有临界点都是非退化的(Hessian矩阵非奇异)。

临界点分类(2D情况):

  • 极小值:Hessian特征值均为正,指标为0
  • 鞍点:Hessian特征值一正一负,指标为1
  • 极大值:Hessian特征值均为负,指标为2

Morse不等式: $$\beta_k \leq c_k$$ 其中 $\beta_k$ 是第 $k$ 个贝蒂数,$c_k$ 是指标为 $k$ 的临界点数。

离散Morse理论: 在网格上定义离散Morse函数,通过组合方法分析拓扑。

3.6.2 Morse-Smale复形

Morse-Smale复形将流形分解为具有均匀梯度流行为的区域。

构造步骤

  1. 计算临界点(极值点和鞍点)
  2. 追踪积分线(梯度上升/下降路径)
  3. 构建稳定/不稳定流形
  4. 求交得到Morse-Smale复形

应用

  • 地形分析:分水岭算法
  • 形状分割:基于梯度流的自然分割
  • 特征提取:脊线和谷线

3.6.3 谱几何处理

利用拉普拉斯特征函数进行几何处理。

谱嵌入: 将网格映射到特征空间: $$\mathbf{x} \mapsto (\phi_1(\mathbf{x}), \phi_2(\mathbf{x}), ..., \phi_k(\mathbf{x}))$$ 谱距离: $$d_{\text{spec}}(x, y) = ||\Phi(x) - \Phi(y)||$$ 其中 $\Phi = (\sqrt{\lambda_1}\phi_1, ..., \sqrt{\lambda_k}\phi_k)$

谱滤波: 在频域进行滤波操作: $$f_{\text{filtered}} = \sum_{k} h(\lambda_k)\langle f, \phi_k \rangle \phi_k$$ 其中 $h$ 是滤波器传递函数。

3.6.4 形状DNA

使用拉普拉斯谱作为形状的"指纹"。

定义: 形状DNA = 归一化的特征值序列 $$\text{DNA} = (\lambda_1/\lambda_1, \lambda_2/\lambda_1, ..., \lambda_k/\lambda_1)$$ 性质

  • 等距不变性
  • 对网格分辨率鲁棒
  • 包含多尺度信息

改进版本

  • Heat Kernel Signature (HKS):$k_t(x, x) = \sum_k e^{-\lambda_k t}\phi_k^2(x)$
  • Wave Kernel Signature (WKS):考虑量子粒子的能量分布

3.6.5 函数映射框架

函数映射(Functional Maps)提供了一种在函数空间中表示形状对应的方法。

核心思想: 不直接寻找点对应 $T: M \rightarrow N$,而是寻找函数对应: $$C: L^2(M) \rightarrow L^2(N)$$ 谱表示: 在拉普拉斯基下,函数映射是矩阵: $$C_{ij} = \langle T\phi_i^M, \phi_j^N \rangle$$ 优势

  • 紧凑表示($k \times k$ 矩阵)
  • 线性约束
  • 易于正则化

3.6.6 最优传输与Wasserstein距离

最优传输理论在形状分析中的应用。

Kantorovich问题: $$W_2^2(\mu, \nu) = \min_{\pi} \int_{M \times N} d^2(x, y) d\pi(x, y)$$

离散化: 在网格顶点上定义概率分布,使用线性规划求解。

应用

  • 形状插值:Wasserstein重心
  • 纹理传输:最优传输映射
  • 形状匹配:基于传输距离的相似性

本章小结

本章深入探讨了3D mesh的微分几何和拓扑性质,主要内容包括:

  1. 离散微分几何基础:学习了如何在离散网格上定义和计算微分算子,包括梯度、散度和外微分。

  2. 曲率计算:掌握了离散高斯曲率(角度缺陷法)和平均曲率(cotangent公式)的计算方法,理解了曲率在形状分析中的应用。

  3. 测地线算法:比较了Dijkstra、MMP、Fast Marching和Heat Method等算法,理解了精度与效率的权衡。

  4. 拉普拉斯算子:深入理解了cotangent拉普拉斯的构造和性质,掌握了谱分解及其在形状分析中的应用。

  5. 拓扑不变量:学习了欧拉特征数、亏格、同调群等拓扑概念,理解了持续同调和Reeb图的构造。

  6. 高级话题:了解了Morse理论、谱几何处理、函数映射等前沿技术。

关键公式汇总

  • 离散高斯曲率:$K_i = (2\pi - \sum_j \theta_{ij})/A_i$
  • 离散平均曲率:$H_i\mathbf{n}_i = \frac{1}{2A_i}\sum_j (\cot\alpha_{ij} + \cot\beta_{ij})(v_j - v_i)$
  • Cotangent拉普拉斯:$(\Delta f)_i = \frac{1}{2A_i}\sum_j (\cot\alpha_{ij} + \cot\beta_{ij})(f_j - f_i)$
  • 欧拉特征数:$\chi = V - E + F = 2 - 2g - b$

练习题

基础题

练习3.1 给定一个顶点 $v$ 的1-ring邻域,其相邻顶点按逆时针顺序为 $v_1, v_2, ..., v_6$,对应的对角 $\alpha_1, ..., \alpha_6$。证明角度和 $\sum_{i=1}^6 \alpha_i = 2\pi$ 当且仅当顶点 $v$ 位于平面上。

提示

考虑高斯曲率的角度缺陷定义。

答案

根据角度缺陷公式,高斯曲率 $K = 2\pi - \sum \alpha_i$。当 $\sum \alpha_i = 2\pi$ 时,$K = 0$,意味着该点处曲面是平坦的。反之,平面上任意点的高斯曲率为0,因此角度和必为 $2\pi$。

练习3.2 计算一个正四面体网格的欧拉特征数,并确定其亏格。

提示

正四面体有4个顶点、6条边、4个面。

答案

$\chi = V - E + F = 4 - 6 + 4 = 2$。由于正四面体是封闭的可定向曲面,根据 $\chi = 2 - 2g$,得 $g = 0$,即拓扑等价于球面。

练习3.3 解释为什么cotangent权重可能为负,这在几何上意味着什么?

提示

考虑钝角三角形的情况。

答案

当角度 $\alpha > 90°$ 时,$\cot \alpha < 0$。这发生在钝角三角形中。负权重意味着该边对拉普拉斯的贡献是"反向"的,几何上对应于非Delaunay的边,可能导致数值不稳定。

练习3.4 对于一个平面三角网格,证明其拉普拉斯坐标 $\Delta \mathbf{x} = 0$。

提示

利用平均曲率与拉普拉斯的关系。

答案

平面的平均曲率 $H = 0$。根据 $\Delta \mathbf{x} = 2H\mathbf{n}$,当 $H = 0$ 时,$\Delta \mathbf{x} = 0$。这意味着每个顶点位于其邻居的加权重心处。

挑战题

练习3.5 设计一个算法来检测网格中的"特征线",定义为主曲率方向场的积分曲线。讨论如何处理脐点(两个主曲率相等的点)。

提示

考虑使用四阶张量场来表示主方向,并使用流线追踪技术。

答案

算法步骤:1) 计算每个顶点的形状算子和主方向;2) 在非脐点处,使用Runge-Kutta方法追踪主方向场;3) 在脐点附近,使用高阶方法或启发式规则确定追踪方向;4) 实施停止准则(到达边界、回到起点、达到最大长度)。脐点处理:可以使用主方向的高阶近似,或基于周围非脐点的方向进行插值。

练习3.6 实现一个基于持续同调的网格简化算法,保留"重要"的拓扑特征。

提示

使用边收缩操作,但根据持续图中特征的"寿命"来决定优先级。

答案

算法框架:1) 计算基于某个滤流函数(如高度函数)的持续图;2) 识别短寿命的拓扑特征(持续值小的点对);3) 对每个边收缩操作,评估其对持续图的影响;4) 优先移除只影响短寿命特征的边;5) 保持长寿命特征对应的拓扑结构。关键是定义合适的阈值来区分"重要"和"噪声"特征。

练习3.7 推导离散测地曲率的计算公式,并讨论其在网格边界处理中的应用。

提示

测地曲率描述曲线在曲面切平面内的弯曲程度。

答案

对于网格边界上的折线,离散测地曲率 $\kappa_g = \pi - \theta$,其中 $\theta$ 是相邻边的夹角。总测地曲率 $\int \kappa_g ds = \sum_i (\pi - \theta_i)$。应用:1) 边界平滑:最小化测地曲率能量;2) 参数化边界条件:保持测地曲率分布;3) 形状匹配:使用测地曲率作为边界描述子。根据Gauss-Bonnet定理,封闭边界的总测地曲率为 $2\pi$。

练习3.8 探讨如何将谱方法扩展到点云数据(没有显式的网格连接)。

提示

考虑基于k近邻或径向基函数的图构造方法。

答案

方法:1) 图构造:k-NN图或ε-球图,边权重使用高斯核 $w_{ij} = \exp(-||x_i - x_j||^2/\sigma^2)$;2) 点云拉普拉斯:使用图拉普拉斯或移动最小二乘法构造;3) 谱分析:计算特征值和特征函数,注意处理不均匀采样;4) 应用:点云分割、特征提取、去噪。关键挑战是选择合适的邻域大小和权重函数,以及处理边界和噪声。

常见陷阱与错误 (Gotchas)

  1. 数值不稳定性 - 问题:Cotangent权重在接近退化三角形时会趋于无穷 - 解决:添加小的正则化项或使用截断

  2. 边界处理 - 问题:边界顶点的1-ring不完整,导致曲率计算错误 - 解决:使用特殊的边界公式或虚拟闭合技术

  3. 拓扑噪声 - 问题:小的拓扑缺陷(如微小的手柄)会影响全局拓扑分析 - 解决:使用持续同调过滤噪声特征

  4. 测地线算法选择 - 问题:Dijkstra快但不准确,MMP准确但慢 - 解决:根据应用需求权衡,考虑Fast Marching或Heat Method

  5. 谱计算规模 - 问题:大规模网格的完整特征分解计算代价高昂 - 解决:使用迭代方法(如Arnoldi)计算前k个特征值

  6. 非流形结构 - 问题:T型接头、非流形边会破坏微分算子的定义 - 解决:预处理修复非流形结构或使用鲁棒的算子定义

  7. 各向异性采样 - 问题:不均匀的三角形大小影响离散算子的精度 - 解决:使用加权的算子或重新网格化

  8. 法向量不一致 - 问题:法向量方向不一致导致曲率符号错误 - 解决:执行法向量定向算法确保一致性

最佳实践检查清单

曲率计算前的准备

  • [ ] 检查网格质量(无退化三角形)
  • [ ] 确保法向量方向一致
  • [ ] 识别并标记边界顶点
  • [ ] 选择合适的Voronoi区域定义(mixed或barycentric)

拉普拉斯算子使用

  • [ ] 验证网格的流形性质
  • [ ] 选择合适的离散化方案(cotangent vs. combinatorial)
  • [ ] 考虑质量矩阵的归一化
  • [ ] 对大规模问题使用稀疏矩阵表示

测地线计算

  • [ ] 评估精度需求 vs. 性能需求
  • [ ] 对多查询场景考虑预计算方法
  • [ ] 处理边界和孔洞
  • [ ] 验证结果的对称性和三角不等式

拓扑分析

  • [ ] 验证网格的水密性
  • [ ] 检查并修复自相交
  • [ ] 使用持续同调识别显著特征
  • [ ] 记录拓扑变化的历史

谱方法应用

  • [ ] 选择合适的特征函数数量
  • [ ] 验证特征值的数值精度
  • [ ] 考虑多分辨率方法
  • [ ] 使用合适的内积定义

性能优化

  • [ ] 利用对称性减少计算
  • [ ] 使用空间数据结构加速邻域查询
  • [ ] 考虑并行化(特征分解、测地线计算)
  • [ ] 缓存重复使用的中间结果

下一章预告第4章:Mesh生成算法 - 深入学习从隐式函数、点云和体素数据生成高质量网格的各种算法。