生成体叶状结构的方法、设备和计算机可读存储介质与流程

文档序号:21369516发布日期:2020-07-04 04:46阅读:297来源:国知局
生成体叶状结构的方法、设备和计算机可读存储介质与流程

本发明一般地涉及计算几何和计算共性的几何领域。更具体地,本发明涉及一种生成体叶状结构的方法、设备和计算机可读存储介质。



背景技术:

随着计算机图形学、三维扫描技术以及工业造型与模拟技术的发展,人们对三维模型处理的相关需求日益增大。参数化是三维模型处理技术的核心基础之一。目前三维模型曲面的参数化的研究较为充分,但是三维模型内部的体参数化研究仍然还不尽完善。体网格的参数化应用非常广泛,尤其在体网格生成、信息重用、形状匹配与分析以及网格的重构等方面起着基础性的作用,同时对模型的后期处理具有重要的意义。

网格参数化已经成为计算机图形领域中必不可少的工具,既可以用作数字几何的表面信息处理,也可以用作工程类的表面处理。根据不同种类的应用以及不同的适用条件,对于网格参数化方法的选择也是不同的。例如,曲面的拟合通常需要网络参数化的扭曲程度尽可能小,而模型的纹理映射则需要参数化具有保积性等。

曲面网格参数化在过去的十几年里已经有了比较成熟的研究。其中,tutte最早提出图的方法,这种方法利用线性映射的思想,并将其直接运用到三角网格中。而eck和floater在此基础上,提出了一种新的方法,该方法通过对线性参数方程进行求解,进而实现网格参数化。另外,eck引入离散的调和映射,通过最小化度量离散标准来近似获取连续的调和映射。desbrun等人计算离散狄利克雷能量得到保形参数化,而pinkall和polthier等人通过计算离散调和映射和hodge星形算子,创建了最小参数化表面。这些算法的主要思想可以概括为:用一个二次方程组来表示网络参数化过程中所出现的局部形变能量,然后通过不断的迭代求解线性方程,优化在整个过程中所产生的形变能量,从而得到最优参数化的方法。然而,这些方法有一个共同点,就是需要提前设定参数化边界的参数,然后通过一组线性方程来求解内部顶点的参数。

随着新应用的不断涌现,许多人提出了新的网格参数化的方法。这种方法可以在自由界限上进行网格参数化,其核心思想为通过调节优化网格变形能量函数的参数从而得到最优参数化后的网格。例如hormann等人提出的基于mips能量函数的参数化方法,levy提出的基于conformal能量函数的参数化方法,desbrun提出的基于stretch能量函数的参数化方法等。这些方法虽然获得了效果比较好的参数化,但其计算方法比线性类方法要复杂的多,并且在参数化过程中不具有保刚性,即存在翻转,同时鲁棒性也不能得到保证。

另外,目前曲面的体调和映照算法、线叶状结构算法只能处理拓扑球面内部区域的参数化,并不能处理高亏格曲面内部区域的体参数化问题。



技术实现要素:

基于上述现有技术中存在的问题,本发明提出了相应的解决方案,该方案基于广义调和映射,可以生成一种体叶状结构,最终实现全局体参数化。

为至少解决上述技术问题,在一个方面中,本发明提出了一种生成体叶状结构的方法,该方法通过计算机的一个或多个处理器来执行以下的步骤:首先,利用亏格为ɡ>1的光滑封闭曲面s来构造裤子分解图,其中曲面s具有ɡ个把手并且裤子是具有ɡ条边界的零亏格三角网格曲面;然后,在拓扑圆盘dk延伸成圆柱体ck的过程中,构造从四面体网格t到图gr的初始映射f0:(t,ɡ)→(gr,h),其中将圆柱体ck∈t映射到边ek∈g,并且圆柱面的上表面和下表面被相应的映射到度量图(gr,h)中的节点;接着,利用n次迭代映射将初始映射演变为广义调和映射,其中n=1,2,…k+1;最后,利用所述度量图(gr,h)的所有节点和度量图(gr,h)边上的点在所述广义调和映射f下的原像,得到四面体网格t的体叶状结构。

在一个实施例中,所述构造裤子分解图包括:构造多个裤子pj,令每条裤子pj对应图gr中的一个节点γj,每条环路γk对应图中的一条边ek,边的长度为对应高度参数hk,所述环路γk与两条裤子pi和pj相连,图中对应的边ek连接节点γi和γj,其中i,j=1,2,…,2ɡ-2;k=1,2,…,3ɡ-3,由此得到三角网格曲面m的裤子分解度量图(gr,h)。

在另一个实施例中,所述构造多个裤子pj的过程包括:首先,将所述曲面s用三角网格曲面m近似表示,并且在三角网格曲面m的每个把手上指定一个环路,由此得到一组环路γ1,γ2,…γɡ;然后,分别沿着环路γ1,γ2,…γɡ将三角网格曲面m切割,得到一个带有2ɡ条边界的零亏格三角网格曲面mi;最后,在所述曲面mi上选取一个环路γɡ+i,使得沿此环路将三角网格曲面mi切割后,得到一个带有2ɡ-1个边界的零亏格三角网格曲面mi+1,以及一个带有3条边界的零亏格三角网格曲面,即为裤子pj,其中i,j=1,2,…,2ɡ-2。

在另一个实施例中,所述将拓扑圆盘dk延伸成圆柱体ck的过程包括:设四面体网格t中定向三角面片集合为{δ1,δ2,…,δm},对于环路γk(k=1,2,…,3ɡ-3),通过求解关于λl(l=1,2,...,m)的约束优化问题:

从而得到一组解则dk是四面体网格t中以γk为边界的拓扑圆盘,即将拓扑圆盘dk延伸成圆柱体ck,使得则圆柱体ck与裤子分解度量图(gr,h)中的边ek相对应。

在又一个实施例中,所述n次迭代映射包括:取四面体网格t中的一个顶点vi将其相邻的点集记作假设连接顶点vi和的边是网格t中m个四面体tl(l=1,2,...,m)的公共边,令其中θl是四面体tl中与边相对应的二面角,al是四面体tl中边的对边的长度,将第k次迭代的映射记为fk:(t,g)→(gγ,h),定义的加权测地质心如下:其中表示图gr上的两点p和在图中的最短路径的长度;用加权测地质心ck(vi)更新vi在映射fk的像,从而得到第k+1次迭代的映射:fk+1(vi)←ck(vi)。

在另一个实施例中,所述将初始映射演变为广义调和映射包括:将四面体网格t中所有边的集合记为λ={[vi,vj]},定义映射fk:(t,g)→(gγ,h)的调和能量为:当相邻两次迭代的映射的调和能量之差e(fk)-e(fk+1)小于给定的阈值时,迭代终止,得到广义调和映射f:=fk+1。

在又一方面中,本发明还提出了一种生成体叶状结构的设备,包括:处理器,其配置用于执行程序指令;以及存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述设备执行根据前述的方面及其多个实施例所描述的方法。

在另一个方面中,本发明提供一种计算机可读存储介质,其上存储有用于生成体叶状结构的程序指令,当所述程序指令由处理器执行时,使得计算机执行前述的方面及其多个实施例所述描述的方法。

通过本发明上述公开的基于广义调和映射的体叶状结构生成方法、设备和计算机可读存储介质,能够处理具有高亏格边界曲面的实体。例如,通过对于给定的一个具有高亏格边界曲面的实体,应用相关算法计算该曲面的裤子分解,从而构造裤子分解图;然后,求出从曲面到图的调和映射,从而得到曲面的叶状结构;进一步地,以曲面叶状结构为边界条件,计算出从实体到同一图的调和映射,得到由若干拓扑圆盘组成的体叶状结构。基于此,通过体叶状结构诱导了一种实体到拓扑圆盘的低维分解,通过将每个拓扑圆盘映射到单位圆,从而最终可以实现全局体参数化。本发明的方法易于实现,算法效率高,更加方便的解决了参数化所带来的扭曲变形问题。另外,本发明的方案还具有保刚性和共形性。

附图说明

通过结合附图,可以更好地理解本发明的上述特征,并且其众多目的、特征和优点对于本领域技术人员而言是显而易见的。下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可根据这些附图获得其他的附图,其中:

图1是示意性地示出根据本发明实施例的生成体叶状结构的方法的流程框图;

图2是示意性地示出根据本发明实施例的亏格为3的曲面s上的输入环路图;

图3是示意性地示出根据本发明实施例的亏格为3的曲面s的裤子分解度量图;

图4是示意性地示出根据本发明实施例的亏格为3的实体v的圆柱体分解图;

图5是示意性地示出根据本发明实施例的亏格为3的实体v的体叶状结构图;以及

图6是示意性地示出根据本发明实施例的生成体叶状结构的设备的组成框图。

具体实施方式

本发明的多个方面及其各种实施例提供了通过各种计算设备(例如各类计算机)来生成体叶状结构的方法、设备和计算机可读存储介质。通过本发明的方案,实现了具有高亏格边界曲面实体的全局体参数化。应当理解,本申请阐述了许多具体细节以便提供对本发明所述实施例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践本发明描述的实施例。在其他情况下,没有详细描述公知的方法、过程和组件,以免模糊本文描述的实施例。而且,该描述不应被视为限制本文描述的实施例的范围。

下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是示出根据本发明实施例的通过计算机生成体叶状结构的方法100的流程框图。

如图1所示,本发明提出的方法100首先执行步骤101,在此步骤处,利用亏格为ɡ>1的光滑封闭曲面s来构造裤子分解图,其中曲面s具有ɡ个把手并且裤子是具有ɡ条边界的零亏格三角网格曲面。为了更好的对构造裤子分解图进行说明,下面需要建立模型并对其进行相应的定义和说明。假设输入亏格为3的光滑封闭曲面s,曲面s共有3个把手。曲面内部欧氏空间的实体表示为v,在实际操作中,实体v用四面体网格t近似表示;曲面s用三角网格曲面m近似表示。一个曲面的叶结构是一种将其划分为互不相交的一维叶子的结构。对于给定一个高亏格曲面,可以找到一种特殊类型的叶状结构,使其所有普通的叶子都是闭环,这样的叶状结构叫做有限可测叶状结构。而曲面的有限可测叶状结构将其分解为一组闭环,如果每个环缩成一个点,那么整个曲面就会缩成一个图,图中的每条边对应于曲面上的一个拓扑圆柱体。为了方便本领域技术人员理解这里的裤子分解操作,下面将先结合图2和图3对该分解操作进行详细地和示意性地说明。

图2是示意性地示出根据本发明实施例的亏格为3的曲面s上的输入环路示意图。在一个实施例中,将对三角网格曲面m进行裤子分解。首先,在三角网格曲面m的每个把手上指定一个环路,由此得到一组环路γ1,γ2,γ3。然后,分别沿着环路γ1,γ2,γ3将三角网格曲面m切割,得到一个带有6条边界的零亏格三角网格曲面m0。接着,在三角网格曲面m0上选取环路γ4,使得沿此环路将三角网格曲面m0切割后,可以得到一个带有5个边界的零亏格三角网格曲面m1,以及一个带有3条边界的零亏格三角网格曲面p1(也称为裤子);在三角网格曲面m1上选取一个环路γ5,使得沿此环路将三角网格曲面m1切割后,可以得到一个带有4个边界的零亏格三角网格曲面m2,以及一个裤子p2;最后在带有4个边界的三角网格曲面m3上选取一个环路γ6,使得沿此环路将三角网格曲面m3切割后,可以得到两个裤子p3和p4。

图3是示出根据本发明实施例的亏格为3的曲面s的裤子分解度量示意图。如图3所示,令三角网格曲面m上的每条裤子pj对应图中的一个节点γj,每条环路γk对应图中的一条边ek,边的长度即为对应高度参数hk,若三角网格曲面m上的环路γk与两条裤子pi和pj相连,则图中对应的边ek连接节点γi和γj,其中i,j=1,2,…,2ɡ-2;k=1,2,…,3ɡ-3,由此得到三角网格曲面m的裤子分解度量图(gr,h)。

返回到图1的流程图,在裤子分解图构造好之后,方法100前进到102步骤,在此步骤处,利用拓扑圆盘dk延伸成圆柱体ck的过程,来构造从四面体网格t到图gr的初始映射f0:(t,ɡ)→(gr,h),其中将圆柱体ck∈t映射到边ek∈g,并且圆柱面的上表面和下表面被相应的映射到图(gr,h)中的节点。

在一个实施例中,所述将拓扑圆盘dk延伸成圆柱体ck的过程如下:设四面体网格t中定向三角面片集合为{δ1,δ2,...,δm},对于环路γk(k=1,2,...,6),通过求解关于λl(l=1,2,...,m)的约束优化问题:

得到一组解则dk是四面体网格t中恰好以γk为边界的拓扑圆盘,即将拓扑圆盘dk延伸成圆柱体ck,使得则圆柱体ck与裤子分解度量图(gr,h)中的边ek相对应。

为了本领域技术人员更好的理解102步骤的操作,下面将结合图4来进一步阐述。图4是示出根据本发明实施例的亏格为3的实体v的圆柱体分解示意图。

如图4所示,在一个实施例中,首先,将拓扑圆盘dk延伸成圆柱体ck,使得则圆柱体ck与裤子分解度量图(gr,h)中的边ek相对应。然后,按照拓扑圆盘dk延伸成圆柱体ck的过程,构造初始映射f0:(t,ɡ)→(gr,h),将圆柱体ck∈t映射到边ek∈g,并且圆柱面的上表面和下表面被相应的映射到图(gr,h)中的节点。

返回到图1,此时方法100执行103步骤。在此步骤处,方法100执行利用n次迭代映射将初始映射演变为广义调和映射,其中n=1,2,…k+1。为了更好理解步骤103,下面简要说明调和映射和广义调和映射。

将源曲面想象成橡皮膜制成的曲面,目标曲面由表面抛光后及其光滑的大理石制成(无摩擦力)。然后用橡皮膜包裹住大理石,橡皮膜在光滑的大理石表面上自由无摩擦地滑动,当系统达到稳定平衡状态时,橡皮膜的弹性形变势能达到最小,此时所得到的映射即为调和映射。调和映射可以极小化弹性形变势能,偏微分方程理论证明了调和映射的存在性、唯一性、稳定性、正确性及光滑性;微分几何则保证了调和映射的微分同胚性及共形不变性。因此,调和映射理论完备,简单直观,广泛应用于工程实践。

而广义调和映射则给定一个在体上定义的实值函数,其调和能量定义为其梯度的l2范数的积分。广义调和函数使调和能量最小化。度量图(g,h)是一个图,其中每条边ei都被赋予一个正权值hi。假设把每条边看作实轴上的一个区间[0,hi],对于给定一个从体到图的映射f:v→g,图的节点的原像定义为γ,其中γ可以是“零测度”的。v由γ分割成几个独立的不相交的连续部分:v\γ=uici,其中每个部分ci都映射到图的一条边ei,而f在ci上的限制可以看作函数f:ci→[0,hi],因此可以这样定义它的调和能量:整个映射的调和能量是各连通分量上函数的调和能量之和。从体到图的调和映射使调和能量最小化。

在一个实施例中,首先,取四面体网格t中的一个顶点vi,将其相邻的点集记作假设连接顶点vi和的边是网格t中m个四面体tl(l=1,2,...,m)的公共边,令其中θl是四面体tl中与边相对应的二面角,al是四面体tl中边的对边的长度。将第k次迭代的映射记为fk:(t,g)→(gγ,h),定义的加权测地质心如下:其中表示图gγ上的两点p和在图中的最短路径的长度。用加权测地质心ck(vi)更新vi在映射fk的像,从而得到第k+1次迭代的映射:fk+1(vi)←ck(vi)。

接着,将四面体网格t中所有边的集合记为λ={[vi,vj]},定义映射fk:(t,g)→(gγ,h)的调和能量为然后重复上述步骤,当相邻两次迭代的映射的调和能量之差e(fk)-e(fk+1)小于给定的阈值时,迭代终止,得到广义调和映射f:=fk+1。

返回到图1的流程图,在得到广义调和映射后,方法100执行104步骤。在此步骤处,方法100执行:利用所述度量图(gr,h)的所有节点以及度量图(gr,h)边上的点在所述广义调和映射f下的原像,得到四面体网格t的体叶状结构。下面结合图5来进一步说明步骤104。图5是示出根据本发明实施例的亏格为3的实体v的体叶状结构示意图。

如图5所示,在一个实施例中,对于度量图(g,h)的所有节点,求出其在广义调和映射f下的原像,该原像是具有三个分叉的曲面;对于度量图(g,h)边上的点,求出其在广义调和映射f下的原像,该原像是一个拓扑圆盘,由此就可以得到四面体网格t的体叶状结构。

所谓叶状结构就是将高维流形分解成低维流形,将曲面分解成一族曲线,每个曲线被称为是一片叶子,叶子层叠在一起构成原来的曲面。例如,一个由如下映射的坐标卡ui组成的一个覆盖即为一个n维流形的维数为p的叶状结构,具体如下:φi:ui→rn,使得在交集ui∩uj上的变换函数有以下形式:其中x表示钱n-p个坐标,y表示后面p个坐标。在坐标卡ui上,条纹x=c(常熟)与其他坐标卡uj上的条纹相吻合。通常,这些条纹被称为叶状结构的斑。在每个坐标卡内,斑是n-p维子流形。这些子流形从一个坐标卡到另一个坐标卡,于是构成了最大连通子流形,称为叶状结构的叶子。

叶状结构本质上与向量场和微分形式有关。叶状结构可以看作是实体的低维分解。曲面叶状结构将曲面分解为一组一维流形(环路),体叶状结构将实体分解为一组二维流形(拓扑圆盘)。这两种叶状结构都可以由广义调和映射来诱导获得,体的叶状结构是将实体划分为不相交的二维流形的结构。如图4所示的为曲面的叶状结构,而图5所示的则为体的叶状结构。体的叶状结构与边界曲面上的曲面叶状结构相一致,中间的为奇异叶子。除奇异叶子外,体叶状结构的叶子均为拓扑圆盘。

通过上文结合图1-图5的描述,本领域技术人员可以理解本发明一方面提出了一种基于广义调和映射生成体叶状结构的方法,在另一方面中也公开了利用上述方法执行生成操作的设备。图6是示意性地示出根据本发明实施例的生成体叶状结构的设备的组成框图。

如图6所示,本发明的设备600可以包括:处理器601,其配置用于执行程序指令;存储器602,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述设备执行:首先,利用亏格为ɡ>1的光滑封闭曲面s来构造裤子分解图,其中曲面s具有ɡ个把手并且裤子是具有ɡ条边界的零亏格三角网格曲面;然后,利用拓扑圆盘dk延伸成圆柱体ck的过程,来构造从四面体网格t到图gr的初始映射f0:(t,ɡ)→(gr,h),其中将圆柱体ck∈t映射到边ek∈g,并且圆柱面的上表面和下表面被相应的映射到图(gr,h)中的节点;接着利用n次迭代映射将初始映射演变为广义调和映射,其中n=1,2,…k+1;最后,利用所述度量图(gr,h)的所有节点以及度量图(gr,h)边上的点在所述广义调和映射f下的原像,得到四面体网格t的体叶状结构。

在一个实施例中,该处理器601可以是通用处理器或专用处理器,并且可以配置成执行计算机程序指令,特别是执行存储于存储器602中的计算机程序指令,以便使得设备600执行根据图1~图5所示的本发明的方法的多个实施例。

该设备600还可以包括用户接口603和通信接口604。其中用户接口603可以包括一个或多个输出设备,其例如可以包括一个或多个扬声器和/或一个或多个视觉显示器。用户接口603还包括一个或多个输入设备,其包括例如键盘、鼠标、语音命令、输入单元或麦克风,触摸屏显示器、触敏平板电脑,姿势捕捉相机,或其他输入按钮或控件。根据本发明,该用户接口603可以接收待处理的数据并且向数据分析人员展示运行结果。通信接口604可以包括网络接口、调制解调器、各类通信端口、总线、通信链路、收发器或其他通信设备。根据本发明的方案,该通信接口可以接收用于测试的原始或者经过类型转换的数据,并且向用户接口603传送各种类型的数据和结果。

在又一个方面,在一个实施例中,本发明还公开了一种计算机可读存储介质,其中存储有程序指令,所述程序指令适于由处理器加载并使得计算机执行:首先,利用亏格为ɡ>1的光滑封闭曲面s来构造裤子分解图,其中曲面s具有ɡ个把手并且裤子是具有ɡ条边界的零亏格三角网格曲面;然后,利用拓扑圆盘dk延伸成圆柱体ck的过程,来构造从四面体网格t到图gr的初始映射f0:(t,ɡ)→(gr,h),其中将圆柱体ck∈t映射到边ek∈g,并且圆柱面的上表面和下表面被相应的映射到图(gr,h)中的节点;接着利用第n次迭代映射将初始映射演变为广义调和映射,其中n=1,2,…k+1;最后,利用所述度量图(gr,h)的所有节点以及度量图(gr,h)边上的点在所述广义调和映射f下的原像,得到四面体网格t的体叶状结构。

尽管此处没有进一步描述,但本领域技术人员根据本发明的教导也可以想到上述的计算机可读存储介质还包括用于执行前述结合图1-图5所描述的方法的程序指令。当该程序指令由包括计算机在内的各种计算设备来加载时,使得计算设备执行前述结合附图所描述的操作。

还应当理解,本发明示例的执行指令的任何模块、单元、组件、服务器、计算机、终端或设备可以包括或以其他方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的)和/或不可移动的)例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。

计算机存储介质的示例包括ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或者可以用于存储所需信息并且可以由应用程序、模块或两者访问的任何其他介质。任何这样的计算机存储介质可以是设备的一部分或可访问或可连接到设备。本发明描述的任何应用或模块可以使用可以由这样的计算机可读介质存储或以其他方式保持的计算机可读/可执行指令来实现。

虽然本发明的实施方式如上,但所述内容只是为便于理解本发明而采用的实施例,并非用以限定本发明的范围和应用场景。任何本发明所述技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1