三角网格变形一直是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中的所有非混合二阶偏导数:

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

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

上次常简写为:

2、 离散拉普拉斯坐标

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

给定具有n个顶点的三角网格模型M=(V,E,F),V为顶点集,E为边集,F为三角面片集合。设v1,…vn为点集V中的点,对于每个顶点vi,用传统的笛卡尔坐标表示,记vi=(xi,yi,zi);用N(i)={j|(i,j)∈E},表示第i点的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三角网格变形之拉普拉斯变换相关推荐

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

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

  2. 图形处理(三)简单拉普拉斯网格变形-Siggraph 2004

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

  3. Open3d学习计划—高级篇 8(网格变形)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

  4. Open3d之网格变形

    如果我们想使用少量的约束使得三角网格变形,得使用相应的网格变形算法.Open3d实现了[SorkineAndAlexa2007] 中的尽可能严格的算法,该方法优化了以下能量函数: 这里的表示 我们要优 ...

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

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

  6. 三角网格模型及基于RBF隐曲面方程求解的曲面重建

    资料来源:径向基函数和神经网络技术在逆向工程中的应用研究(博士论文:王宏涛) RBF神经网络模型 RBF神经网络起源于数值分析中多变量插值的RBF方法,1988年Broomhead等人首先将该算法应用 ...

  7. arap deformation 网格变形可视化

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. rarp变形全称是 As-Rigid-As-Possible Suface Deformation. 意思是变形时尽量使每条边保 ...

  8. 2019-10-12 拉普拉斯变换的理解

    拉普拉斯变换(Laplace transform)属于线性变换,是在控制领域绕不过去的积分变换.同时拉普拉斯变换与傅里叶变换也存在着绕不过去的关系. 傅里叶变换.傅里叶级数 傅里叶级数针对周期函数,傅 ...

  9. 网格变形动画MeshTransform

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

最新文章

  1. php使用位运算来实现日留存的算法
  2. WP7之Application Bar控件
  3. 固件是通用的吗_如何升级AirPods固件?
  4. Word 2003中对不同的节设置不同的页面边框的特殊情况小结
  5. 企业级 SpringBoot 教程 (一)构建第一个SpringBoot工程
  6. 给“网吧”做管理系统
  7. cisco2811(Cisco2811 DHCP)
  8. ps抠图头发丝 智能半径
  9. 未来三年的移动互联网创业----创新工场创始合伙人汪华 在移动开发者大会上的演讲
  10. 《算法艺术与信息学竞赛》之 递推 例一 月亮之眼 vijos 1540
  11. 全国十大加班城市排行榜加班最疯狂的城市
  12. 主流车品牌魅力指数榜别克、东风日产、一汽丰田列前三
  13. SAP xsengine 403 - Forbidden(The server refused to fulfill the request.)
  14. 宝塔搭建TY博客附好看模板
  15. JiangxiBank
  16. python3 爬虫之爬取糗事百科
  17. 聊一聊单片机和服务器
  18. 计算机复制无法到qq上,电脑复制后不能粘贴是什么原因(附:解决办法)
  19. SimLab Composer 10 for Mac(3D场景制作软件)
  20. amd 开核型号及匹配主板

热门文章

  1. [转载] 古墓丽影1
  2. 只能打单面的打印机如何打双面
  3. Android页面的布局
  4. Kafka——创建无消费者组的消费者消费订阅主题
  5. 【Python 最全版(一)】—加解密、编码解码、进制转换、字符串转换
  6. 微信小程序 php解密,微信小程序des加密、PHP des解密
  7. 【开关电源五】电源拓扑之全桥、半桥、推挽
  8. 卷积神经网络学习路线(二十一) | 旷世科技 ECCV 2018 ShuffleNet V2
  9. windows 10远程连接ubuntu 18.04 Gnome桌面:NoMachine工具使用详解
  10. firefox os android,若能同时使用Android应用,那么你可以接受Firefox OS手机了吗?