As-Rigid-As-Possible Surface Modeling

 As-Rigid-As-Possible Surface Modeling
Olga Sorkine and Marc Alexa
Eurographics/ACM SIGGRAPH Symposium on Geometry Processing 2007

 

Abstract

Modeling tasks, such as surface deformation and editing, can be analyzed by observing the local behavior of surface. We argue that defining a modeling operation by asking for rigidity of the local transformations is useful in various settings. Such formulation leads to a non-linear, yet conceptually simple energy formulation, which is to be minimized by the deformed surface under particular modeling constraints. We devise a simple iterative mesh editing scheme based on this principle, that leads to detail-preserving and intuitive deformations. Our algorithm is effective and notably easy to implement, making it attractive for practical modeling applications.

 

   基于这篇文章,我给出了第一篇论文,“基于四面体胞的尽可能刚性网格变形算法”。

  下面是我的这篇文章的摘要:

  提出一种基于四面体胞的尽可能刚性三角形网格变形算法。用户通过操作网格上的若干顶点以得到所需的模型变形结果。首先,算法对网格模型内部进行稀疏四面体化,以产生一个贴合模型表面的四面体胞集。在模型变形过程中,算法通过最小化相应的变形能量函数,以保持网格模型表面局部区域的刚性以及每个四面体胞的刚性,从而有效避免模型表面及其内部的扭曲。同时,针对大尺度编辑可能造成的模型局部塌陷,提出一种简单的四面体胞自适应剖分方法,根据模型局部体积的剧烈变化,自动剖分对应的四面体胞以增加模型内部的局部变形自由度,进而消除不正确的变形效果。此外,自适应的四面体胞剖分允许算法在初始时只需对网格模型进行稀疏的四面体化,而在变形过程中根据需要进一步提高四面体胞的局部稠密度,因而保证了算法的鲁棒性及其效率。实验结果表明,该变形算法可以有效保持模型的表面细节以及模型的内部体积,并能够有效避免模型形状在大尺度变形时的局部退化。

 

首先定义网格表面的能量函数;

 

 

然后根据用户定义的约束操作,最小化相应的能量函数,求解出变形后的网格坐标。

 

在实现的过程中,遇到的问题:1)定义一环领域,可以考虑论文(A Local/Global Approach to Mesh Parameterization)的matlab代码的做法(http://www.math.zju.edu.cn/cagd/Projects/ARAPPara/default.htm);2)定义相应的能量函数之后,需要通过迭代的方式求解最终的变形网格位置。在编程中,需要根据static & handle points来重新整理方程组的形式,利用专门的求解线性方程的库,如taucs,来计算求解。这一步有点复杂,但是把相应的变量搞清楚后,就比较方便,需仔细。

 

 

 

 

你可能感兴趣的:(网格,算法,matlab,processing,algorithm,scheme)