[Laplace Deformation]拉普拉斯网格变形--理论

2023-12-12 18:30

本文主要是介绍[Laplace Deformation]拉普拉斯网格变形--理论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这次Laplace Deformation的博客分为两个部分,理论实现

实现(含代码):https://blog.csdn.net/z136411501/article/details/107623248

 

参考:

Mesh模型的Laplace Deformation(网格形变 - 拉普拉斯形变) - 使用Eigen矩阵库

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

[图形学]拉普拉斯网格变形(Laplace Deformation)原理及复现

<<Polygon Mesh Processing>>阅读笔记(9)变形(Deformation)

这四篇博客(链接可点)看下来,基本变形流程的理解就没问题,其他人博客重复太多的定义介绍,我会省去简写。

 

Laplacian Mesh Processing.Olga Sokrine.EG2005   (paper原文已放百度云,强推,解释了推导变形的数学原理,why do that?)

链接:https://pan.baidu.com/s/1gsbof7yw8iAhkm4rkNWlNw 提取码:3lqp

 

以下出现的部分图表公式及文字表达均引用自上述链接及paper

 

一.拉普拉斯网格变形是什么

  一图以蔽之,左图S是初始网格,右图S'是变形后的网格。

  F,淡蓝色区域,是S的子区域,固定初始位置不变,不参与变形。

  R, 深蓝色与黄色区域,ROI区域,是位置改变的区域,其中(差集R-H)区域参与变形计算

  H, 黄色区域,olga Sokrine称其为Handle Vertices,形象理解为用手拽着移动的区域。

这是paper原文里的一张图,红色带确定参与变形的区域R,黄色球确定Handle区域H,拽着黄色球往上拖,差集R-H区域随之改变。

整个操作流程可以理解为,选择一张网格S,固定住他的边缘F,用手拽着H向上移动,同时差集R-H区域的顶点的新位置由拉普拉斯网格变形方程计算。

 

二.数学原理

2.1 拉普拉斯坐标

  由上两个例子可以看出,网格变形的一个需求就是要保证局部的细节特征尽量不变,而常规的笛卡尔坐标只保存了顶点的空间信息,这时引入拉普拉斯坐标(δ-Coordinate)的概念。我们将每个顶点的笛卡尔坐标转换为拉普拉斯坐标,再来思索问题。

                                      

  拉普拉斯坐标,其数学意义为一个顶点的笛卡尔坐标和这个点所有邻接点的笛卡尔坐标的加权平均,物理意义为拉普拉斯坐标能够记录模型的局部细节特征。

  当网格形变后,我们希望网格的局部信息不要被破坏,换成坐标的说法就是,网格上顶点的笛卡尔坐标变了,但是我们希望网格上所有点的拉普拉斯坐标没变,也就是点和点的相对位置关系没变。


  补充:paper原文解释了为什么δ坐标能记录局部细节特征。

从微分几何的角度,拉普拉斯坐标写成下式,

                                   

上式可以看成是下式曲线积分的离散近似

                                    

下图为上面两个公式的几何意义示意,左图为离散表示,右图为连续的微积分表示

 

对于右图,γ是嵌在surface表面的封闭黑色曲线,|γ|为曲线的长度。

现在我们假设,当连续微积分的微分区域γ无限小时,γ近似于一个微圆,(修正paper中的公式如下,红框区域应该是叉乘,而不是点乘,否则解释不了等于等式右边,),左边微积分等于该点的平均曲率H(vi)与该点的法线ni的乘积。所以这个微积分的值的标量等于平均曲率,方向等于法线。

                         

ps:原文没有解释这个等式,以下是我的自己理解

假设γ近似于一个半径无穷小(R→0)的平面圆,叉积的数学意义为求面积,则

                  

                     

|γ|为曲线的长度,即这个圆的周长,

                      

因为Vi与V为矢量,所以微积分的方向为该点的法向(mesh一个顶点的法线方向为这个顶点与周围三角形的叉乘矢量和的方向的单位化和,具体可以百度)。

所以

                     

等式右边H(Vi)表示该点的平均曲率,曲率的解释,这个https://www.zhihu.com/question/25952605解释的很好,

把γ看作为一个平面微圆,因为是平面的,所以这个点的曲率H(vi)无穷小,接近于0。又因为R→0,所以

                           

证毕。所以直观地讲,δ坐标能表示局部形状的特征


目前为止,拉普拉斯的坐标计算均采用的是平均加权,当然有其他的加权方法,可以看其他文章的介绍

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

 

2.2 矩阵计算

 用一个矩阵 L 将mesh网格所有顶点从笛卡尔坐标转到拉普拉斯坐标,即,这个矩阵矩阵很容易想到为

                                                       

I为单位矩阵(nxn,n为网格顶点的数目),D为对角矩阵,其中Dii=di,di为第i个顶点的相邻顶点的数目,A为邻接矩阵

                                          

这里paper作者提出,为方便起见,一般考虑使用L的对称形式,Ls,参与之后的计算

                                            

Ls图表示意如下,

                   

但有了L或Ls,我们不能像 一样,简单的由拉普拉斯坐标δ反推出笛卡尔坐标,因为L或Ls矩阵非满秩,不可逆。(用右上图的Ls矩阵示例,矩阵每一行的累加值为0,非满秩,这就表明了至少存在一个非零的特征向量,而这个特征向量并不是我们想要的。)

作者也指出

                                     

k是连通分量的个数。左上图示例的连通分量为1,所以rank(L) = 10-1 = 9


  补充:连通分量

                         

这个图有三个连通分量,0-6,7-8,9-12


注意,危!所以,只要给定一个顶点 Vi 变化后的拉普拉斯坐标与笛卡尔坐标。数学意义上就等价于丢掉了LV = δ中,L矩阵的第i行与第i列,这样在假使mesh联通分量只有1的情况下,矩阵满秩,可求唯一解。

所以只要有1个锚点(笛卡尔坐标位置已知的点,笛卡尔坐标是未知数,因为要逆推笛卡尔坐标的值)就能解方程。但通常在方程组中放置更多的锚点,即固定锚点和可移动的handle锚点。(作者在后期提到了放置更多锚点的原因是为了加速求解矩阵时,矩阵的稳定性考虑,但我觉得其他几个博客提到的原因也很有道理)

      

 

现在就可以列出我们的新方程组Ax=b,A是加过锚点之后的矩阵,b是更改过的拉普拉斯坐标值,x是我们要求的笛卡尔坐标值。

                                

w是锚点的权,w>0,一般设为1。I是一个mxn的类单位矩阵,m为锚点的数目,n为网格顶点的数目,I的每一行只有一个非零元素,其值为1。c1:m 已知的该锚点的笛卡尔坐标。

下图为加了两个锚点后的Ls矩阵

                                     

所以到这一步位置,Ax=b是一个超定方程组,方程组秩等于列秩n < 行数(m+n),所以该超定方程组存在唯一最小二乘解,即

解为

                                                     

x就是最终求出来的变形后网格的新笛卡尔坐标的集合。

这里是超定方程组最小二乘解的推导过程 https://www.cnblogs.com/narjaja/p/9304472.html

 

这篇关于[Laplace Deformation]拉普拉斯网格变形--理论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485548

相关文章

csu(背包的变形题)

题目链接 这是一道背包的变形题目。好题呀 题意:给n个怪物,m个人,每个人的魔法消耗和魔法伤害不同,求打死所有怪物所需的魔法 #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>//#include<u>#include<map

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

hdu3389(阶梯博弈变形)

题意:有n个盒子,编号1----n,每个盒子内有一些小球(可以为空),选择一个盒子A,将A中的若干个球移到B中,满足条件B  < A;(A+B)%2=1;(A+B)%3=0 这是阶梯博弈的变形。 先介绍下阶梯博弈: 在一个阶梯有若干层,每层上放着一些小球,两名选手轮流选择一层上的若干(不能为0)小球从上往下移动,最后一次移动的胜出(最终状态小球都在地面上) 如上图所示,小球数目依次为

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

”CSS 网格“二维布局系统(补充)——WEB开发系列32

CSS 网格布局是一种二维布局系统,用于网页设计。通过使用网格,你可以将内容以行和列的形式进行排列。此外,网格布局还能够简便地实现一些复杂的布局结构。 一、什么是网格布局? CSS网格布局是一种二维布局系统,它允许我们创建复杂的网页布局,既可以处理行也可以处理列。与传统的布局方法不同,网格布局将网页分成多个可控的区域,这些区域可以任意排列、对齐和调整大小。网格布局使得创建灵活且响应

西方社会学理论教程复习重点

一.名词解释 1.社会静力学:旨在揭示人类社会的基本秩序。它从社会的横断面,静态的考察人类社会的结构和制度,寻找确立和维护人类社会的共存和秩序的原则。 2.社会动力学:纵观人类理性和人类社会发展的先后必要阶段,所叙述的是这一基本秩序在达到实证主义这一最终阶段之前所经过的曲折历程。 3.社会事实:一切行为方式,不论它是固定的还是不固定的,凡是能从外部给予个人以约束的,或者说是普遍存在于该社会各

行政组织理论-第十一章:创建学习型组织

章节章节汇总第一章:绪论第二章:行政组织的演变第三章:科层制行政组织理论第四章:人本主义组织理论第五章:网络型组织理论第六章:行政组织目标第七章:行政组织结构第八章:行政组织体制第九章:行政组织设置与自身管理第十章:组织激励第十一章:创建学习型组织第十二章:政府再造流程第十三章:行政组织变革 目录 第一节 学习型组织理论的产生1. 学习型组织的源起2. 学习型组织的定义3. 学习型组织与组

系统架构师考试学习笔记第三篇——架构设计高级知识(18)面向服务架构设计理论与实践

本章考点:         第18课时主要学习面向服务架构设计理论与实践。根据考试大纲,本课时知识点会涉及单选题型(约占2~5分)和案例题(25分),本课时内容偏重于方法的掌握和应用,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,概念知识的考查内容多数来源于实际应用,还需要灵活运用相关知识点。         本课时知识架构如图18.1所示。 一、SOA的相关概念 (

css——网格布局

名词解释 div{$}*9+tab键,快捷生成   记首字母gtc  网格布局:display: grid;        grid-template-columns: 100px 100px 100px;        grid-template-rows: 100px 100px 100px; (父元素) <!DOCTYPE html><html lang="en"