回顾

曲面参数化
映射( Mapping / Map )
平面几何映射

映射的表达

映射:基函数的线性组合

映射表达为基本映射(基函数)的线性组合

• 基函数(basis functions):

$$ f_1,f_2,f_3,\cdots ,f_n $$

• 基函数的线性组合:

$$ f(X)=\begin{pmatrix}u(X) \\v(X) \end{pmatrix}=\begin{pmatrix}\sum a_if_i(X) \\\sum b_if_i(X) \end{pmatrix} $$

映射:简单区域上映射的连续组合

映射表达为小区域(三角形区域)上映射的拼接

\(f\) is approximated by piecewise linear maps between pairs of triangles

几何映射的例子

例1:2D变形

[06:51] 2D变形问题:构造一个函数\(f\), 使得拖拽点\(f(P)\)满足到达目标点的约束。
[10:06] 或\(f(P)\)满足\(f'(P)\)为目标值的约束,就是法线插值。
[10:43] mesh 点是指定点(例如重心坐标)的组合。通过移动指定点控制mesh.

本质:插值问题

例2: Barycentric Coordinates

重心坐标:link

映射的性质

问:What are good maps?

答:(1)满足双射,即Source 与 target 一一 对应。local 双射(单射):一一对应,但有翻转发生
(2)扭曲尽量少,否则有鬼影现象 [21:28下图]

翻转 Flip (foldover) - 单射

现象

原理

\(f(x)\)是映射关系,求\(f\)的 Jacobian,

\(J\)是每个分量分别对\(x\)和构成偏导
\(\det|J| >0 \Rightarrow \)未翻转。

[图23:35]有两个区域 \(D_1, D_2\),
\(\Omega \) 为\(x_0\)的无穷小邻域
\(\Omega\)映射到\(D_2\)后成为\(f(\Omega)\)
A: signed area. $$ y=\underset{A(\Omega )} {lim}=\frac{A(f(\Omega ))}{A(\Omega )} =J(f)l_{x=x_0} $$ |y|>1:膨胀
|y|<1:收缩
y<0:翻转

[31:02] 3D空间则分解为\(\sigma _1,\sigma _2,\sigma _3\)
[32:02图] 有一个矩形,希望把它边界变成红线形,求变形后的形状:
期望:形变较小/夹角小\(\dots\) (看应用需求)

Globally Bijective - 双射

单射→双射:需要显式地判断是否发生碰撞

这里的形变,虽然每个面片都没有发生翻转,但整体上发生了碰撞,不满足双射

扭曲

Jacobian的几何意义

函数在某点的Jacobian度量了其局部的形变量

$$ L=U\begin{pmatrix} \sigma _1 & 0\\ 0 &\sigma _2 \end{pmatrix}V^* $$

$$ \sigma _2\ge \sigma _1 $$

• angle‐preserving (conformal) \(\sigma _1= \sigma _2\)

• area‐preserving (authalic) \(\sigma _1\sigma _2=1\)

• length‐preserving (isometric) \(\sigma _1=\sigma _2=1\)

其它Distortion Metric

映射的优化模型

Recap: Formulation of Parameterization

$$ \min_{V} E(V)=\sum _{t\in T}(\sigma _1^2+\frac{1}{\sigma _1^2} +\sigma _2^2+\frac{1}{\sigma _2^2}) $$

$$ s.t.\sigma _1\sigma _2>0,\forall t $$

• The cost function is highly nonlinear and nonconvex
• The constraints are nonlinear
• The Heissian matrix is highly non‐definite

Computationally expensive for large scale meshes!

要解决的问题

输入:

可能的输出:

希望找到形变较少的度量,不同的度量会得到不同的结果

优化的能量

基于不同的度量,生成对应能量函数,进行优化

能量由每个三角形的变形能量相加得到:

$$ E(\phi )=E(A_1,\cdots ,A_m) = \sum _jf(A_j) $$

Map optimization

同时要考虑三角形能够拼到一起。

Explicit continuity

优化参数: \(A_1,A_2,\cdots ,A_m\)
相邻三角形的\(A\)应满足约束:

$$ A_iv_1=A_jv_1 $$

$$ A_iv_2=A_jv_2 $$

Implicit continuity

$$ A_i\overline{\begin{bmatrix} \nu_1 & \nu_2 &\nu_3 \end{bmatrix}} =\overline{\begin{bmatrix} u_1 & u_2 &u_3 \end{bmatrix}} $$

$$ A_i=\overline{\begin{bmatrix} u_1 & u_2 &u_3 \end{bmatrix}} \overline{\begin{bmatrix} \nu_1 & \nu_2 &\nu_3 \end{bmatrix}} $$

$$ A_i=A_i(U) $$

变量不是\(A\),而是\(u\),\(A\)是由\(u\)决定的

Optimization variables: \(u_1,u_2,\cdots ,u_n(U)\)

$$ E(\Phi )=\sum _jf(A_j(U)) $$

这种方法更常用

几何优化的求解

优化能量,关键是怎么定义能量

各种能量

Dirichlet能量

area / volume \(\Rightarrow E_D=\sum _jw_j||A_j||_F^2\)

公式没有几何意义,纯粹是一种度量。
会造成比较大的扭曲,现在很少用了

Orthogonal and Similarity

• R is orthogonal if \(R^T=R^{-1}\)
(rotation if det 𝑅 > 0)

• S is a similarity if \(S =\alpha R\)

• \(\Re(A)=\) closest orthogonal/rotation matrix to \(A\)
• \(\varsigma (A)\)= closest similarity matrix to \(A\)

对A做SVD/SSVD分解:

\(A=U\sum V^T\);\(\sum\) =diag\((\sigma _1,\cdots ,\sigma _n)\)

As‐Similar‐As‐Possible (ASAP)

$$ E_L=\sum _jw_j||A_j-\varsigma (A_j)||_F^2 $$

Solving sparse linear system!

As‐Rigid‐As‐Possible (ARAP)

$$ E_R=\sum _jw_j||A_j-\Re (A_j)||_F^2 $$

Alternating Optimization

  • Iteratively:
    • Compute and fix \( R_j = \Re (A_j) \) Local step

• Minimize

\(\sum _jw_j||A_j-R_j||_F^2\) Global step

[Liu et al. A Local/Global Approach to Mesh Parameterization. SGP 2008]

[42:11] locd: 分裂 global:缝合
交替迭代优化方法

交替优先的方法非常常用

各种方法的比较

ARAP vs. ASAP

Singular values perspective

Summary

Geometric Mapping

• Discrete Mapping

• Discrete formulation

argmin \(E(\phi )\) Separable
s.t. \(\phi \in K\)

• Nonlinear and nonconvex
• Computationally expensive for large scale meshes!

Meshless mappings

$$ f(x)=\sum_{i=1}^{m} c_iB_i(x) $$

[46:28] \(f\)有些独特的性质。例如在边界上满足一定的性质,就能保证内部一定满足某些性质。
对整个对象做映射,因此是meshless.

• Low distortion
• Flip‐free
• Bijective

其他区域间的映射求解

• 离散形式
• 约束条件


本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/