首页> 中国专利> 一种任意拓扑的多边形网格模型融合方法

一种任意拓扑的多边形网格模型融合方法

摘要

本发明公开了一种任意拓扑的多边形网格模型融合方法,包括以下步骤:1)从已有模型上截取感兴趣的部件;2)在过渡基元的辅助下将部件放置在合适的位置;3)在屏幕上用鼠标绘制线条以指定连接已有模型的中间过渡物体的大致轮廓;4)采用变分隐式曲面定义光滑插值边界并符合指定轮廓的过渡曲面;5)采用局部化的移动立方体算法,对过渡曲面进行多边形化并与已有模型进行无缝连接。本发明通过将已有的多边形网格模型以自然、光滑的方式融合在一起,得到新的复杂多边形网格模型,从而为非专业人员提供了一种简便直观的造型方法。

著录项

  • 公开/公告号CN101266691A

    专利类型发明专利

  • 公开/公告日2008-09-17

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200810060653.3

  • 发明设计人 林俊聪;金小刚;王昌凌;许健泉;

    申请日2008-04-24

  • 分类号G06T15/00(20060101);G06T17/00(20060101);

  • 代理机构33224 杭州天勤知识产权代理有限公司;

  • 代理人胡红娟

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2023-12-17 20:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-10

    未缴年费专利权终止 IPC(主分类):G06T15/00 授权公告日:20100113 终止日期:20140424 申请日:20080424

    专利权的终止

  • 2010-01-13

    授权

    授权

  • 2008-11-05

    实质审查的生效

    实质审查的生效

  • 2008-09-17

    公开

    公开

说明书

技术领域

本发明涉及计算机模型处理技术,特别是涉及一种任意拓扑情况的多边形网格模型融合方法。

背景技术

三维物体融合通过将已有物体的部件无缝地拼接在一起以构造出兼有它们特征的新模型,提供了一种操作简洁、功能强大的造型工具。  在早期,一些研究人员提出运用参数化技术建立待融合物体边界处影响区域之间的映射关系,然后对影响区域进行混合处理以达到光滑拼接,参见T.Kanai.H.Suzuki,J.Mitani and F.Kimura.Interactive mesh fusionbased on local 3D metamorphosis.In Proceedings of Graphics Interface,1999,pp 148-156。

近年来,微分域多边形网格处理技术的发展为实现融合操作提供了新思路。在建立边界之间的对应关系后,将对应边界变换到一致的形状并将变换扩散到对应边界的影响区域产生一个渐变的过渡,由于仅需建立边界之间的对应关系,这种方法可以很好地适用于亏格不为0的物体间的融合,参见Y.Yu.K.Zhou,D.Xu.X.Shi.H.Bao,B.Guo and H.Shum.Meshediting with Poisson-based gradient field manipulation.ACM Transactions onGraphics 23(3):664-65 1.2004以及O.Sorkine,Y.Lipman,D.Cohen-Or,M.Alexa,C.Rossl and H.P.Seidel.Laplacian surface editing.In Proceedings ofEUROGRAPHIC S/ACM SIGGRAPH Symposium on Geometry Processing.pp 179-188.2004。但无论是基于参数化技术的方法还是基于微分域多边形网格处理的方法,都采取将待融合物体的边界直接拼接在一起,然后对边界附近定义的影响区域进行特定操作以实现光滑拼接的策略,因而这些策略只能处理两个对应边界之间的融合,而无法处理多个边界的同时融合。

发明内容

本发明提供一种任意拓扑的多边形网格模型融合方法,在于解决现有多边形网格模型融合方法存在的拓扑限制问题。

一种任意拓扑的多边形网格模型融合方法,包括以下步骤:

1)从已有模型上截取感兴趣的部件;

2)基于过渡基元的物体定位:用户在已有多边形网格模型上截取感兴趣部件,在过渡基元的辅助下将它们变换到用户满意的方位。所述的过渡基元是一个大致表示中间过渡物体形状的简单几何体如球、圆柱、圆台等,待融合物体围绕过渡基元放置;

3)基于草图的轮廓勾勒:提供基于草图的接口以方便用户指定中间过渡物体的轮廓形状,用户在屏幕空间用鼠标大致勾勒出过渡物体的轮廓,系统自动确定出轮廓线的深度信息,并变换到世界坐标系,随后这些轮廓被转化为位置约束和法向约束并添加到变分隐式曲面构造中;

4)基于变分隐式曲面的过渡物体描述:采用变分隐式曲面定义中间过渡物体,将待融合的部件连接在一起以处理各种拓扑情况下的融合问题,在融合边界处引入位置约束和法向约束以实现边界的光滑过渡;

5)局部化移动立方体等值面抽取:将指定空间剖分为立方体,并根据定义的隐函数进行采样;根据立方体的采样信息以及待融合物体的信息对立方体分类;在有效立方体上应用保拓扑的移动立方体算法抽取等值面;采用最优桥接三角化实现过渡网格与待融合物体的无缝连接;对过渡区域进行重新网格化改善网格质量。

对于每个待融合物体,我们定义一个方向:n=nbound+w×nbody,式中nbound和nbody分别表示边界和整个待融合物体的方向,分别通过对边界的所有顶点和整个待融合物体的所有顶点进行主元分析得到。用户在过渡基元上指定物体将要移到的位置CT,由CT可以确定一个目标方向ntarget,接着系统将自动计算得到一个刚性变换,物体通过变换后,CB变换到CT位置,n变换到ntarget

采用变分隐式曲面定义中间过渡物体将待融合的部件连接在一起以方便处理各种拓扑情况下的融合问题,在融合边界处引入位置约束和法向约束以实现边界的光滑过渡。我们首先为所有边界点及边界的n-环点(记这些点的集合为V*)按

fi=p(ci)+ΣjNλjφ(|ci-cj|)

列出方程,函数值取fi=0,这样可以保证过渡曲面精确插值给定的边界。

此外,为了保证过渡光滑,我们还必须引入法向约束,对于V*中的每个点vi我们沿其法向ni偏移一定距离得到一个新点vi+τni,将该点加入线性系统中,赋予函数值fi=τ。τ为一个很小的实数,我们取τ=0.1Lmin,Lmin为所有边界上最短的边长。

提供基于草图的接口以方便用户指定中间过渡物体的轮廓形状:用户在屏幕空间用鼠标大致勾勒出过渡物体的轮廓,系统自动找到两个离该轮廓线端点最近的开口A和B,并在两个开口上分别确定离轮廓线端点最近的点P、Q;然后引入两个平面投影平面Ω和深度平面∏:深度平面∏经过点P、Q和视点,记其法向为n,用于进一步调整轮廓线的深度变化。投影平面Ω经过点P、Q,其法向为nΩ=nΠ×PQ,描述当前角度下轮廓线的形状;接着,用户所绘轮廓线被投影到由深度平面上的贝赛儿曲线沿n扫略得到的曲面上。系统自动确定出轮廓线的深度信息,并变换到世界坐标系;随后用户勾勒的过渡物体轮廓被转化为位置约束和法向约束并添加到变分隐式曲面构造中,对于轮廓线上的点,它们的法向可以通过对确定轮廓线的开口上的两个点P和Q的法向通过沿轮廓线进行弧长插值得到。

采用一个局部化移动立方体算法将变分隐式曲面转化为三角网格表示:在算法上,要求只多边形化隐式曲面上感兴趣的部分,为此必须对剖分后的立方体进行归类,然后对每种立方体使用不同的处理方法。由于只对VS-Cube进行多边形化,在给定模型和生成的网格间那些BS-Cube所占据的区域会存在一个空白带,必须对这个条带进行三角化从而将所有网格曲面连成一个整体。

本发明针对现有的多边形网格模型融合方法存在的拓扑限制,以及边界形状不能差异太大等缺点,采用了一种通过构造中间过渡物体来融合给定的多个部件的技术方案,本发明算法明确,界面友好,结果鲁棒,该方法可以用于游戏、影视中的角色设计。

附图说明

图1为本发明的技术方案流程图;

图2图1中基于过渡基元的物体定位处理过程图;

图3图1中基于草图的轮廓线勾勒的处理过程图;

图4图1中局部化移动立方体算法具体组成图;

图5图1中立方体分类的组成图。

具体实施方式

一种适合于任意拓扑的多边形网格模型融合方法,用户从已有模型上分割出感兴趣的部件,接着在过渡基元的辅助下将各个部件变换到合适的方位,然后用户用鼠标在屏幕上勾勒出中间过渡物体的轮廓,随后算法生成一个变分隐式曲面表示的、精确插值边界位置和法向约束、符合用户所描绘轮廓的中间过渡物体,最后通过一个局部化移动立方体方法自动抽取出过渡曲面上所需保留的部分并实现与待融合物体的无缝连接,具体流程参见图1。

本发明实施的关键有四点:基于过渡基元的物体定位、基于变分隐式曲面的过渡物体描述、基于草图的轮廓勾勒、局部化移动立方体等值面抽取。下面具体介绍关键的实现细节:

1.基于过渡基元的物体定位

对于每个待融合物体,我们定义一个方向:

n=nbound+w×nbody

式中nbound和nbody分别表示边界和整个待融合物体的方向,分别通过对边界的所有顶点和整个待融合物体的所有顶点进行主元分析得到,首先我们按下式构造协方差矩阵CVM:

CVM=Σ(p-c)(p-c)

记λ1≥λ2≥λ3为CVM的特征值,为对应的单位特征向量,则nbound和nbody定义如下:

nbound=sign((CB-CP)·v3)*v3

nbody=sign((CB-CP)·v1)*v1

式中CB,CP分别是边界和物体的重心。

sign(x)为符号函数

sign(x)=-1x<01x0

用户在过渡基元上指定物体将要移到的位置CT,由CT可以确定一个目标方向ntarget,接着系统将自动计算得到一个刚性变换,物体通过变换后,CB变换到CT位置,n变换到ntarget。物体定位的示意图见2。

2.基于草图的轮廓勾勒

我们设计了一个草图接口来描述待生成过渡曲面的轮廓形状,并将这些轮廓线转化为变分曲面的位置约束和法向约束。在一般的基于草图的自由造型系统中,用户所绘制的线条都在同一个深度平面上,同时也不需要太多地考虑上下文环境(这里,上下文环境指的是造型系统中已存在的一些会对解析新绘制的线条所反映用户意图产生影响的物体),而在网格融合框架下,绘制的线条往往不会仅简单的处于一个深度平面上,即必须考虑深度变化的连续性问题。我们设计了一个比较新颖的构造方法,如图3所示。首先用户在屏幕上绘制出一条2维轮廓线,系统自动找到两个离该轮廓线端点最近的开口A和B,并在两个开口上分别确定离轮廓线端点最近的点P、Q;然后我们引入两个平面投影平面Ω和深度平面∏:深度平面∏经过点P、Q和视点,记其法向为n,用于进一步调整轮廓线的深度变化。投影平面Ω经过点P、Q,其法向为nΩ=nΠ×PQ,描述当前角度下轮廓线的形状;接着,用户所绘轮廓线被投影到由深度平面上的贝赛儿曲线沿n扫略得到的曲面上。然后可以在两个平面上分别对投影后的轮廓线进行调整,对于投影平面,我们设计了一个光顺工具让方便用户对轮廓线进行光顺直到满意,对于深度平面,用户可以通过调整贝赛儿曲线的两个控制顶点来改变形状,从而改变轮廓线的深度变化,而固定其余控制点从而保证深度变化与边界处光滑连续。

3.基于变分隐式曲面的过渡物体描述

在用户指定了满意的轮廓线约束后,我们就可以构造一个光滑连接所有待融合物体并符合给定轮廓的变分曲面。过渡曲面的形状由边界约束和用户指定的轮廓约束所决定,我们首先为所有边界点及边界的n-环点(记这些点的集合为V*)按列出方程,函数值取0,这样可以保证过渡曲面精确插值给定的边界。此外,为了保证过渡光滑,我们还必须引入法向约束,对于V*中的每个点vi我们沿其法向ni偏移一定距离得到一个新点vi+τni,将该点加入线性系统中,赋予函数值fi=τ。τ为一个很小的实数,我们取τ=0.1Lmin,Lmin为所有边界上最短的边长。对于轮廓线上的点,它们的法向可以通过对确定轮廓线的开口上的两个点P和Q的法向通过沿轮廓线进行弧长插值得到。根据给定的插值约束

f(ci)=hi

我们可以列出如下的方程:

fi=p(ci)+ΣjNλjφ(|ci-cj|)

由于这个方程只是未知数(λi和函数p的系数)的线性方程,所以可以用一个线性系统来求出未知数来。设ci表示点(cix,ciy,ciz),φij表示φ(|ci-cj|),则线性方程可以用矩阵表示:

φ11φ12···φ1N1c1xc1yc1zφ21φ22···φ2N1c2xc2yc2z·····················φN1φN2···φNN1cNxcNycNz11···10000c1xc2x···cNx0000c1yc2y···cNy0000c1zc2z···cNz0000λ1λ2···λNp0p1p2p3=f1f2···fk0000

从上可以看出该线性系统是对称和半正定的,所以总存在一个唯一的解。需要注意的是上面矩阵的条件数随着约束点的增加而增加,这样就会增加系统的不稳定性,但是我们的应用中约束点只是待融合物体边界上的点,数目不会很大,所以没有给我们的过渡曲面带来影响。

4.局部化移动立方体等值面抽取

局部化移动立方体算法的整个过程见图4。我们的方法是在原始移动立方体方法上进一步扩展得到的。移动立方体算法的核心思想是首先将隐式曲面所处的特定空间剖分成立方体子空间,对于每个立方体,根据其八个顶点的内外标志进行多边形化。不同于传统的移动立方体方法,我们的算法要求只多边形化隐式曲面上感兴趣的部分,为此我们必须对剖分后的立方体进行归类,然后对每种立方体使用不同的处理方法。如图5所示我们的算法将立方体分为4类:

●E-Cube:如果一个立方体的八个节点全部位于曲面的内/外部,则该立方体将不会包含任何三角片,称之为E-Cube,其余的立方体则称为S-Cube,S-Cube又可以进一步分为下面的三类:BS-Cube、VS-Cube和IS-Cube。

●BS-Cube:如果一个S-Cube与给定的边界相交,则称为边界相交立方体;如果S-Cube的26个邻居中有一个是边界相交立方体,则称该S-Cube为边界邻居立方体。这两类立方体都归为BS-Cube。

●VS-Cube和IS-Cube:在确定了BS-Cube后,其他剩下的S-Cube分为两种:有效曲面立方体(VS-Cube)和无效曲面立方体(IS-Cube)。位于感兴趣曲面片上的即为VS-Cube,反之则是IS-Cube。

我们采用了一个种子填充算法来区分IS-Cube和VS-Cube:首先我们在BS-Cube的邻居中寻找种子IS-Cube,考察每一个BS-Cube的为确定类型的邻居,如果它与任一个边界的周围一圈三角片相交则为种子IS-Cube(对于每一个边界,我们取其环绕3圈的三角片参与求交,若某边界不存在对应的种子IS-Cube,那么我们则将环绕边界的更多3角片加入,直到每个边界都存在至少一个对应的种子IS-Cube。);在为每个边界都找到种子IS-Cube后,我们以种子IS-Cube出发进行一个种子填充过程以得到所有的IS-Cubes,对于任意一个种子IS-Cube,考察其26个邻居,若存在未确定类型的S-Cube,则将该立方体置为IS-Cube并作为新的种子点,重复该过程直到没有新的种子IS-Cube出现为止。

种子IS-Cube搜索算法-Function SeedCubeSearch(c)的伪代码如下:

Function Seed Cube Search(c)

Input:a BS-Cube c

Output:a seed IS-Cube

1)for any of c’s 26 neigh bors-cn

2)if cn is E-Cube OR BS-Cube OR IS-Cube

then continue;

3)if cn intersect a boundary,then return cn

4)for any of c’s 26 neigh bors-cn

5)s=null;

6)if cn is a BS-Cube,then s=SeedCube Search(s);

7)if s is NOT null,then return s;

8)return null;

IS-Cube种子填充算法-Function CubeFlooding(s)的伪代码如下:

Function CubeFlooding(d)

Input:a seed IS-Cube d

Output:the flooding result

1)Assign d to an IS-Cube;

2)for any of d’s 26 neighbors-dn

3)if dn is E-Cube OR BS-Cube OR IS-Cube

then continue;

两种算法都以递归函数形式给出。

我们从每一组BS-Cubes中随机选取一个BS-Cube c作为输入调用Function SeedCubeSearch(c),得到种子IS-Cubes,然后调用FunctionCubeFlooding(s)进行IS-Cube的传播。如果Function SeedCubeSearch(c)返回null,我们从另一组BS-Cubes中再选取一个BS-Cubec进行搜索。我们迭代的进行搜索及传播过程直到没有找到新的种子IS-Cube。由于两个函数中的搜索过程都是局部的,因此整个立方体分类的过程是比较快的。

在完成了立方体分类后,我们就可以在VS-Cubes上抽取等值面,本文采用了Lewiner等人提出的移动立方体算法的一个高效而鲁棒的实现(参见T.Lewiner,H.Lopes,A.W.Vieira,and G.Tavares.Efficientimplementation of marching cubes cases with topological guarantees.Journalof Graphics Tools,2003,8:1-15)。

由于我们只对VS-Cube进行多边形化,在给定模型和生成的网格间那些BS-Cube所占据的区域会存在一个空白带,我们必须对这个条带进行三角化从而将所有网格曲面连成一个整体。我们将之定义为一个组合优化问题并进一步转化成有向图上的最短路径问题进行求解。我们定义有向图上的边权重为一个衡量三角片T规则性的式子:

J=|23×r/l-1.0|

式子中r是内切圆的半径,l为三角片T的最长边。度量值J越小表示三角片越规整,这样求得的是一个三角片最规整的结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号