Chapter 09 Geometry Processing
1. Discrete differential geometry¶
Compute approximations of the differential properties of this underlying surface directly from the mesh data.
1.1 Local Averaging Region¶
Key idea: 为了用离散来逼近连续, 我们要定义一个点的邻域, 这样我们可以假定某个微分量在邻域内变化很小, 看作一个定值, 这样将这个邻域的积分值除以面积就可以得到微分量.
常见的几种定义邻域方式:

1.2 Normal Vectors¶

1.3 Gradient¶
对于单个三角形, 给定三个顶点 \(x_i,x_j,x_k\) 上的函数值 \(f_i,f_j,f_k\), 三角形上任意一点的函数值 \(f(x)\) 可根据 \(x\) 的重心坐标插值得到.
$$
f(x)=\alpha f_i+\beta f_j + \gamma f_k \
$$
\(\alpha, \beta, \gamma\) 分别是所对三角形面积与整个三角形面积的比值.

那么 \(f(x)\) 的梯度为:
$$
\nabla_x=\nabla_x\alpha f_i+\nabla_x\beta f_j+ \nabla_x\gamma f_k
$$


可见, 梯度在每个三角形内不变.
1.4 Laplace-Beltrami Operator¶
- Constant gradient on facet -> zero Laplace value
- Gradient on the vertex:

motivation:
$$
f''(x)=\lim_{\Delta x\to0} \frac{f(x+\Delta x)-f(x)+f(x-\Delta x)-f(x)}{2}
$$
Contangent Formula


Uniform
$$
\omega_{ij}=1 or \omega_{ij}=\frac{1}{n_i}
$$

2. Mesh Smoothing¶


3. Detail-Preserving Mesh Editing¶
Key idea: 通过使得新 mesh 的 Laplacian 与原来的 Laplacian 更接近保留细节

4. Level of Detail¶
- 对于近的物体使用更多的 Polygons 渲染
- 对于远的物体使用更少的 Polygons 渲染
5. Mesh Simplification¶
- Delete unnecessary vertices, edges and triangles
- 移除顶点

- 边塌缩

边塌缩算法是更为简单而常用的, 它通过选择出要被删除的边, 并将边的两个端点合并成一个点放在新的位置上.
为了选择要删除的边, 我们需要有一种误差度量, 最常用的是二次误差度量. 通过最小化新的顶点与之前对应的平面的 L2 距离,我们可以得到删除这条边会引入的二次度量误差.
细节参见 Lab.