三角网格变形一直是CAGD相关领域的重点,刚上研究生的时候,感觉有点神奇。而且一上来导师就给我发了一篇基于格林坐标的自由变形的相关paper,让我看,外文文献,看了n多天,第一次看外文文献,啥也没看懂,好像也没什么收获。因为当时根本连文献要怎么看都不懂,如何把一篇文献转换成代码,更别谈直接看外文文献了,一篇文章下来,根本不知道哪里是重点……之所以把这篇博文标题为:简单拉普拉斯网格变形,是因为我只用了求解一个稀疏的线性方程组,就进行变形。

本篇博文主要是参考阅读2004年Siggraph上面的几篇微分网格变形的相关文献:《Laplacian Surface Editing》、《Differential Coordinates for Interactive Mesh Editing》……因为2004年,各路大神刚研究出了微分变形的算法,所以有很多篇Siggraph的paper都很牛逼……

一、 拉普拉斯坐标相关理论

拉普拉斯网格变形的本质是网格模型局部细节特征的编码和解码的过程。编码过程是指网格顶点的欧氏空间坐标到Laplacian坐标的转换。Laplacian坐标包含了网格的局部细节特征,因此Laplacian网格变形算法能够较好地保持网格模型的局部细节。解码过程是指通过微分坐标反求欧氏空间坐标,实质上是一个求解线性系统的过程。因此Laplacian网格变形算法高效、鲁棒。

1、曲面拉普拉斯算子(参考文献基于微分坐标的网格morphing)

拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,被定义为梯度()的散度(),因此如果是二阶可微的实函数,则的拉普拉斯算子定义为:

的拉普拉斯算子也是笛卡尔坐标系xi中的所有非混合二阶偏导数:

对于三维欧式空间中的拉普拉斯方程为:

其中,为三维空间中二阶可微的实函数。

上次常简写为:

2、 离散拉普拉斯坐标

拉普拉斯坐标蕴含着曲面的局部特征信息,网格曲面的拉普拉斯坐标其在网格变形、网格平滑、网格去噪等方面都用着重要的应用。

给定具有n个顶点的三角网格模型M=(V,E,F),V为顶点集,E为边集,F为三角面片集合。设v1,…vn为点集V中的点,对于每个顶点vi,用传统的笛卡尔坐标表示,记vi=(xi,yi,zi);用N(i)={j|(i,j)∈E},表示第点的1-ring邻域顶点构成的集合,如图1,定义vi处的拉普拉斯坐标为:

其中,δi为顶点vi的拉普拉斯坐标,L(·)为网格的拉普拉斯算子,ωij为vj点相对于vi点的权值,且∑ωij=1。目前常用的权值包括均匀权值、余切权值、正切权值、弹簧权值等。

(1)均匀权值计算公式

其中,di为顶点vi的度(邻接顶点的个数),由于这种权值只是简单的平均,故又称为均匀权值,采用该权值进行网格变形时,所获得的精度较低。

(2)余切权值计算公式

其中,αij、βij是边vivj的两个邻接三角面片的对角,如图所示。

本文采用余切权值进行相关计算,可获得较好的网格变形结果。

3、 拉普拉斯坐标的性质

(1)线性变换(参考自拉普拉斯坐标在网格变形中的应用)

若T是点集V的线性变化,则

(2)平移不变性

若T是平移变换,则

(3)对旋转变换敏感

若R是旋转变换,则

二、 拉普拉斯网格变形框架

对于有n个顶点的网格模型M,由公式(1)式简写成矩阵形式为:

其中,

L为n×n的拉普拉斯矩阵,其秩为n-k,其中k是M连通子集的个数,且

拉普拉斯网格变形的本质是通过求解线性方程组公式1,获得变形后网格模型的顶点坐标V'。然而由于公式1的拉普拉斯矩阵是不可逆矩阵,其秩为n-k,因此需要至少增加k个顶点的坐标作为约束条件,方程组1才有解,这些约束顶点我们称之为约束点(“锚点”)。

在交互式网格变形编辑中,一般是由用户鼠标点选约束点。如图1,我用户交互输入v1,v2作为约束顶点,然后鼠标拖动v2点,可实现球体模型的实时变形。

设M中的部分顶点vj作为约束条件,其变形后的绝对坐标v'j已知,v'j = uj,j=1, 2, …, m,m为约束顶点的个数(m≧k)。基于拉普拉斯坐标的网格变形方法获得变形后的顶点V',可归结求解一个带位置约束的优化问题:

式中  wj ——约束点权值

解(3)中的最小值问题,就相当于求解下面的超静定线性系统

其中,

Δ'的每一列表示每个顶点对应的拉普拉斯坐标。H是m×n阶矩阵,H的每一行只有一个非零元素,其值为对应的约束权值。h为m×3阶矩阵,即,每列代表一个坐标分量。未知数V'是的矩阵,其第i行表示变形后的网格顶点的三维坐标,这样求解该线性系统,可获得变形后各顶点的坐标。

公式(1)是一个超静定方程组,根据超静定方程组的求解方法,其等价于求解下式:

可得:

通过上式可求得各个网格顶点的三维坐标。

根据拉普拉斯坐标的性质,由于拉普拉斯坐标对旋转敏感,使得网格的局部信息会发生旋转扭曲,特别是对于大尺度变形时,其扭曲尤为严重。如图3所示,原网格模型本来为圆形的特征,经过变形后圆形特征发生严重扭曲。也就是说要实现网格模型的保特征变形,不能直接使用原网格的拉普拉斯坐标来重建变形后的网格模型,而应该重新设置微分坐标的方向再重建模型,下一节将具体介绍如何求取未知的拉普拉斯坐标。由于拉普拉斯坐标不具有旋转不变性,简单地用原始的拉普拉斯坐标Δ近似未知变换网格的拉普拉斯坐标Δ',很容易产生扭曲变形,如图3 所示(Differential Coordinates for Interactive Mesh Editing):

总结:三角网格曲面的变形算法中,现在效果最好的是微分变形,当然现在的很多商业软件,三维的建模软件的变形算法并不是用了微分变形算法,而是使用自有变形,这个在proe软件中就有类似的功能,自由变形的优点是它的速度快。不过对于微分变形,虽然需要求解一个大型的稀疏矩阵,但是这个矩阵现在有一些快速的解法,就像二维图像泊松融合一样,有快速求解泊松方程的算法,所以总的来说,现在微分域的变形算法,是最有前途的。本篇博文中,我只讲解了简单的拉普拉斯微分变形算法,没有对拉普拉斯坐标的方向问题进一步的讲解,因为现在研究比较多的就是如何求解拉普拉斯坐标的新方向,这个可以用旋转不变量、调和场等方法,具体后续再进行详解。

参考文献:

1、《Differential Coordinates for Interactive Mesh Editing》

2、《基于微分坐标的网格morphing》

3、《 Dual Laplacian editing for meshes》

4、《Linear rotation-invariant coordinates for meshes》

5、《 Differential coordinates for interactive mesh editing》

6、《拉普拉斯坐标在网格变形中的应用》

**********************作者:hjimce   时间:2015.7.15  联系QQ:1393852684   地址:http://blog.csdn.net/hjimce   原创文章,版权所有,转载请保留本行信息********************

图形处理(三)简单拉普拉斯网格变形-Siggraph 2004相关推荐

  1. 图形处理(五)基于旋转不变量的网格变形-Siggraph 2007

    一.相关理论 本篇博文主要讲解2007年Siggraph上的一篇经典paper:<Linear Rotation-invariant Coordinates for Meshes>,这篇p ...

  2. 图形处理(四)基于梯度场的网格编辑-Siggraph 2004

    基于梯度场的网格编辑,对应的Paper为<Mesh Editing with Poisson-Based Gradient Field Manipulation>,是Siggraph 20 ...

  3. 图形处理(十二)拉普拉斯网格优化、最小二乘网格模型光顺

    看这篇博文前,请先参考我的另外一篇博文<图形处理(三)简单拉普拉斯网格变形-Siggraph 2004>学习拉普拉斯坐标的相关理论知识.这里要分享的paper,是通过拉普拉斯的方法实现三角 ...

  4. Siggraph三角网格变形之拉普拉斯变换

    三角网格变形一直是CAGD相关领域的重点,刚上研究生的时候,感觉有点神奇.而且一上来导师就给我发了一篇基于格林坐标的自由变形的相关paper,让我看,外文文献,看了n多天,第一次看外文文献,啥也没看懂 ...

  5. 图像处理(十三)保刚性图像变形算法-Siggraph 2004

    图像变形可以说是很多图像.动画领域的一个非常常见的功能,就说ps.天天P图.美图秀秀.可牛等这些每个软件,有好多个功能都要用到图像变形,比如图像方向校正.图像全景.视频防抖等,在我的另外一篇博文全景矩 ...

  6. Siggraph三角网格变形之三维网格拉普拉斯

    Mesh Editing中重要的特征是要保持局部的细节,尤其Local Laplace Coordinates的不变性,最简单的Laplace 网格处理的原理如下:          网格的lapla ...

  7. 保刚性图像变形算法-Siggraph 2004

    图像处理(十三)保刚性图像变形算法-Siggraph 2004 查看全文 http://www.taodudu.cc/news/show-6027440.html 相关文章: 介绍一个牛逼的Githu ...

  8. 网格变形动画MeshTransform

    原文:Mesh Transforms 作者:Bartosz Ciechanowski 译者:kmyhy 我是 transform 属性的超级粉丝.让 UIView 或者 CALayer 的形体发生改变 ...

  9. 赛题解析|初赛赛道三:服务网格控制面分治体系构建

    首届云原生编程挑战赛正在报名中,初赛共有三个赛道,题目如下: 赛道一:实现一个分布式统计和过滤的链路追踪 赛道二:实现规模化容器静态布局和动态迁移 赛道三:服务网格控制面分治体系构建 立即报名(报名时 ...

最新文章

  1. 可视化的数据结构和算法
  2. XSS 注入漏洞处理
  3. B16_NumPy线性代数(dot,vdot,inner,matmul,determinant,solve,inv)
  4. NHibernate中的API
  5. 所谓工作能力强,就看这5件事
  6. python数据存储系列教程——python中redis数据库操作:连接、增删查改、多级路径
  7. 筛选索引--filter indexs
  8. Linux安装Vmware Workstation
  9. Neokylin7安装gedit
  10. 【数据库设计】学籍管理的数据库系统
  11. iPhone销量下降,这两种方法可以把Android和iPhone手机投屏到电脑上!
  12. Hibernate学习记录
  13. Sloan中性群落模型(NCM)推断群落构建原理及其R实现
  14. 变形金刚2中的各个角色,及车型(带图)第一篇。
  15. 点与有向线段的位置关系
  16. IDA + GDBServer实现iPhone程序远程调试
  17. SD 卡驱动程序分析
  18. 教你用 python 画圣诞树
  19. BZOJ1003 物流运输(dp+spfa)
  20. vue下载excel文件的方法

热门文章

  1. SpringBoot - 优雅的实现【业务校验】高级进阶
  2. jvm性能调优实战 -52修复堆内存区域内存溢出问题OutOfMemoryError: Java heap space
  3. MySQL - 分页查询优化的两个案例解析
  4. Elasticsearch-Jest 配置ES集群源码解读
  5. Spring-AOP @AspectJ进阶之绑定连接点方法入参
  6. tablepc是什么平板电脑_54位平板电脑充电柜长什么样?安和力
  7. mysql 插入数据后返回该条数据id
  8. datagrip mysql乱码_DataGrip 2019.1.2 x64 连接MySQL出错解决
  9. git指定版本openwrt源码_[OpenWrt Wiki] LEDE源代码
  10. abaqus最大应力准则怎么用_ANSYS与ABAQUS对比,你选择那个?