Laplacian_Surface_Editiing
概述: 为了解决传统的网格自由变形方法在曲面编辑操作通常会导致曲面细节严重失真的问题,本论文通过拉普拉斯坐标对网格进行编辑,并使用仿射变换矩阵调整拉普拉斯坐标,从而能在保留网格的细节和结构的前提下,对曲面进行平移,旋转和缩放等操作。本论文的方法能够用在网格编辑,涂层迁移和曲面块移植的场景下。
下图展示了把龙的嘴巴向上抬的过程。流程是首先固定红色区域,然后选择控制点,最后对局部区域进行网格变形。算法能够保持模型原有的特征。
1.预备知识
1.1 拉普拉斯坐标
拉普拉斯坐标是基于结点与其领域结点的相对位置关系进行构建的,所以拉普拉斯坐标是一种相对坐标。
好处在于,无论在空间中如何使网格变形,结点的相对坐标不会改变。
拉普拉斯坐标公式为:
δ i = L ( v i ) = v i − 1 d i ∑ j ∈ N i v j (1) \delta_{i}=\mathscr{L}\left(\mathbf{v}_{i}\right) =\mathbf{v}_{i}-\frac{1}{d_{i}} \sum_{j \in \mathscr{N}_{i}} \mathbf{v}_{j} \tag{1} δi=L(vi)=vi−di1j∈Ni∑vj(1)
公式1可以理解为先求出领域结点绝对坐标的平均值,再用当前结点的绝对坐标减去这个均值,得到拉普拉斯坐标。
1.2 拉普拉斯坐标的性质
拉普拉斯坐标有三个性质。
- 1)线性变换
若 T T T是点集 V V V的线性变化,则 T ( L ( v i ) ) ≡ L ( T ( v i ) ) T\left(L\left(v_{i}\right)\right) \equiv L\left(T\left(v_{i}\right)\right) T(L(vi))≡L(T(vi)) - 2)平移不变性
若 T T T是平移变换,则
∑ j ∈ N ( i ) ω i j ( T v i − T v j ) = ∑ j ∈ N ( i ) ω i j T ( v i − v j ) = ∑ j ∈ N ( i ) ω i j T ( x v i − x v j y v i − y v j z v i − z v j 0 ) = ∑ j ∈ N ( i ) ω i j ( x v i − x v j y v i − y v j z v i − z v j 0 ) = δ i \sum_{j \in N(i)} \omega_{i j}\left(T v_{i}-T v_{j}\right)=\sum_{j \in N(i)} \omega_{i j} T\left(v_{i}-v_{j}\right)=\sum_{j \in N(i)} \omega_{i j} T\left(\begin{array}{c} x_{v_{i}}-x_{v_{j}} \\ y_{v_{i}}-y_{v_{j}} \\ z_{v_{i}}-z_{v_{j}} \\ 0 \end{array}\right)=\sum_{j \in N(i)} \omega_{i j}\left(\begin{array}{c} x_{v_{i}}-x_{v_{j}} \\ y_{v_{i}}-y_{v_{j}} \\ z_{v_{i}}-z_{v_{j}} \\ 0 \end{array}\right)=\delta_{i} j∈N(i)∑ωij(Tvi−Tvj)=j∈N(i)∑ωijT(vi−vj)=j∈N(i)∑ωijT⎝
⎛xvi−xvjyvi−yvjzvi−zvj0⎠
⎞=j∈N(i)∑ωij⎝
⎛xvi−xvjyvi−yvjzvi−zvj