一种基于四边形折叠的三维网格图形简化方法

文档序号:6555875阅读:224来源:国知局
专利名称:一种基于四边形折叠的三维网格图形简化方法
技术领域
本发明涉及图形数据处理领域,具体涉及对复杂的三维图形数据进行简化的一种基于四边形折叠的三维网格图形简化方法。
背景技术
随着科学技术的不断进步,在计算机图形学、虚拟现实、计算机辅助设计、地理信息系统、医学图形等领域越来越多地应用到三维网格图形,这些图形动辄产生数以百万计的面片,对计算机的存储容量、处理速度、绘制速度、传输效率等都提出很高的要求,然而在很多情况下高分辨率的模型并不总是必要的,这就需要对原始模型进行简化。
几何元素删除法是其中一种重要的图形简化方法,其原理是在保持一定的几何误差的前提下,删除对模型几何特征影响较小的几何“图元”(点、边、面)。“删除”又分直接删除、通过合并两个或多个面来删除边或面、对边或三角形进行折叠等三种情况,移去或删除操作一直进行到模型不能简化或达到指定近似误差为止。
图形简化是目前计算机图形及移动计算上的热门方向,对这方面的研究出现了不少的成果,但在几何元素删除法这方面的相关成果目前只有基于顶点、边(如图1所示)、面(三角形)(如图2所示)删除这几种方法。

发明内容
本发明的目的在于提供一种基于四边形折叠的三维网格图形简化方法,可简化复杂的三维图形数据,降低对存储、显示、传输等方面的指标要求。
本发明一种基于四边形折叠的三维网格图形简化方法,包括步骤①获取三维图形的网格信息数据;②定义并检索出网格中所含的四边形;③确定折叠代价最小的四边形;④折叠化简操作。
所述的定义并检索出网格中所含的四边形是通过边来检索,而且排除边界边。
所述的确定折叠代价最小的四边形中采用Garland算法中的二次误差度量来计算四边形折叠的代价,由于四边形折叠需要同时考虑4个顶点移动后造成的误差,本方法以进行折叠操作的四边形4个顶点的误差之和作为折叠代价。
所述的折叠化简操作包括新顶点位置的确定,新顶点的位置可以有如下方法选择(a)子集位置即四边形四个顶点的其中一个顶点,子集位置由于不产生新顶点,需要存储及处理开销较小,适合像移动终端设备这样的对简化效果要求不高,但对处理开销相对严格的场合;(b)最佳位置由于折叠代价函数是二次函数,因此可以计算出其最小值作为折叠后的新顶点;如果上述计算无解,则可以选取四边形的四个顶点或公共边及外部边的中点这9个位置中的一点作为新顶点的位置。
所述的折叠化简操作中对于网格中含有一条或多条边界边的边界四边形作以下处理在该三角形集合的每条边界边上作一个通过该边界边并与该边界边所在的边界三角形垂直的平面a,在计算折叠代价时要考虑新顶点到平面a的距离,保证新顶点不会偏离边界,保持了图形的边界。
本发明一种基于四边形折叠的三维网格图形简化方法具有以下几个方面的特点(1)提出两个以公共边相连的三角形可以构成一个四边形,以四边形折叠为基本操作,是一种间接(非三角网格图形原有基本图元)的简化方法。
(2)操作上Garland的边折叠算法的每次边折叠减少1个顶点与2个三角形面片,周昆的三角形折叠算法的每次折叠减少2个顶点和4个三角形面片相比,本文算法一次四边形折叠能减少3个顶点及6个三角形面片,相当于3次边折叠和1.5次三角形折叠的效果,具有更高的折叠效率,从而实现比边折叠算法和三角形折叠算法更快的简化速度。
(3)误差计算上采用Garland的QEM(二次误差量度)即以新顶点到旧平面的距离平方和作为顶点移动的误差代价,由于可以通过矩阵叠加简单地计算出误差值,时间复杂性上与Garland、周昆的算法处于同等数量级,所以算法误差计算效率十分高。
如上所述,本方法不仅可以简化复杂的三维图形数据降低对存储、显示、传输等方面的指标要求,而且与已有方法相比,具有更高的简化速度,是一种快速高效的三维网格图形简化方法。


图1是本发明的控制流程图;图2是边折叠;图3是三角形折叠;图4是四边形折叠;图5是边界处理作垂直平面a;图6是三维球模型进行一次四边形折叠的效果;
图7是三维球形模型的简化;图8是人头模型的简化;图9是鲨鱼模型的简化。
具体实施例方式
下面结合附图对本发明的的三维网格图形简化方法作详细描述。
如图1所示是该发明的一个实施方案的控制流程图,主要包括以下步骤获取三维图形的网格信息数据、检索出网格中所含的四边形、确定折叠代价最小的四边形、折叠化简。下面作详细介绍。
(1)四边形的定义与检索算法中定义的四边形并不是网格模型的基本图元,而是由两个相连的三角形组合而成,在执行算法的时候,四边形就可以通过网格模型的边得到,每条边都对应两个相连的三角形,即都对应着一个由它们组合成的四边形,该边则为这个四边形的公共边;由于边界边只对应一个三角形,也即不存在以之为公共边的四边形,因此,在通过边检索四边形的时候,需要排除边界边。
(2)基于四边形的折叠操作由图4可见,四边形QUAD{v7,v8,v9,v10}是由两个三角形T{v7,v8,v10}及T{v8,v9,v10}通过公共边E{v8,v10}连接而成。简化的基本操作是四边形折叠,在图(a)中,对四边形QUAD{v7,v8,v9,v10},找到与之相关的三角形集合CQ,对QUAD{v7,v8,v9,v10}执行折叠操作,则其四个顶点v7,v8,v9,v10收缩为图(b)中的v0,执行该次折叠操作,共减少3个顶点和6个三角面片。
(3)四边形折叠代价的计算简化的误差即四边形折叠的代价,本算法引入Garland算法中的二次误差度量,即把新顶点到旧顶点相连平面的距离的平方之和作为顶点移动后引起的误差。
Δ(v)=Δ(υxυyυz1T)=Σp∈planes(v)(pTv)2]]>=Σp∈planes(v)(vTp)(pTv)]]>=Σp∈planes(v)vT(ppT)v]]>=vT(Σp∈planes(v)Kp)v]]>=vTQ(va)v.---(1)]]>其中,KP为4×4对称矩阵KP=ppT=a2abacadabb2bcbdacbcc2cdadbdcdd2---(2)]]>由于四边形QUADi折叠需要同时考虑4个顶点移动后造成的误差,我们以进行折叠操作的四边形4个顶点va、vb、vc、vd的误差之和作为误差量度,即ε(QUADi)=∑Δ(v)=Δ(va→v0)+Δ(vb→v0)+Δ(vc→v0)+Δ(vd→v0)=v(Q(va)+Q(vb)+Q(vc)+Q(vb))vT=vQvT(3)其中,Q(va)、Q(vb)、Q(vc)、Q(vd)皆为4×4的对称矩阵,Q可以由矩阵叠加得到,因此上式展开可得vTQv =q11x2+2q12xy+2q13xz+2q14x+q22y2+2q23yz+2q24y+q33z2+2q34z+q44(4)(4)新顶点位置进行四边形折叠操作后,新顶点的位置可以有如下方法选择(a)子集位置即四边形四个顶点的其中一个顶点,子集位置由于不产生新顶点,需要存储及处理开销较小,适合像移动终端设备这样的对简化效果要求不高,但对处理开销相对严格的场合。
(b)最佳位置(依据某种评价指标合成的新顶点)
由(4)式可知误差函数Δ(v)是二次函数,因此其最小值是个线性问题。由极值的性质,我们对(4)式中的x,y,z求偏导数,可得方程组(5)∂Δ(v)∂x=∂Δ(v)∂y=∂Δ(v)∂z=0---(5)]]>写成矩阵的形式,即q11q12q13q14q12q22q23q24q13q23q33q340001v=0001---(6)]]>如果(6)式有解,则新顶点v的位置由式(7)唯一给出v=q11q12q13q14q12q22q23q24q13q23q33q340001-10001---(7)]]>否则,可以选取四边形QUADi的四个顶点或公共边及外部边的中点这9个位置中的一个作为新顶点的位置。
(5)边界的处理对于非闭合的网格模型,存在含一条或多条边界边的边界四边形,与其相关的三角形集合不能构成一个三角形环,如忽略边界的情况,则在简化过程中会造成边界退化。为避免这种退化,我们在该三角形集合的每条边界边上作一个通过该边界边并与该边界边所在的边界三角形垂直的平面。
如图5示,QUAD{va,vb,vc,vd}是以vavc为公共边的边界四边形,vdvc是网格模型的边界边,作平面a垂直三角形T{va,vc,vd},并与T{va,vc,vd}相交于边vdvc,因此计算vd及vc两顶点的误差矩阵Q时,就需要考虑新顶点到平面a的距离,由于计算机结果与这个垂直平面的选取无关,这样做就将点到边界边的距离加入到误差测度之中,从而保证新顶点不会偏离边界,保持了模型的边界。
基于四边形折叠的网格简化算法是采用新的四边形折叠作为基本简化操作,以QEM作为误差量度,根据图1和图4对该方法的控制流程作如描述步骤1.对原始网格中的每条非边界边构成的四边形QUADi,计算其误差矩阵Q;步骤2.对原始网格中的每个四边形QUADi,通过其误差矩阵Q计算其折叠后生成的最优收缩目标点v,并通过vQvT计算其折叠误差并按顺序入栈,栈顶为最小误差值;步骤3.选取误差最小的四边形进行折叠;步骤4.更新与被折叠四边形相关的所有信息;步骤5.如果四边形序列为空或已经达到简化目标,转到步骤6,否则转步骤3。
步骤6.结束图6、图7、图8和图9为该方法的几组应用实例。图6是三维球模型进行一次四边形折叠前后的图形比较。图7是由2000个三角形网格组成的三维球形模型使用本简化方法处理后的几组图像,左边是贴面图,右边是拓朴结构图。下表为不同简化程度所对应的面片数

图8是人头模型的简化,图9是鲸鱼模型的简化。由以上几组应用实例可以看出本简化方法将模型简化了50%以后,仍能够较好保持模型的边界特征,具有很好的简化效果。
权利要求
1.一种基于四边形折叠的三维网格图形简化方法,包括步骤①获取三维图形的网格信息数据;②定义并检索出网格中所含的四边形;③确定折叠代价最小的四边形;④折叠化简操作。
2.根据权利要求1所述的三维网格图形简化方法,其特征是所述的定义并检索网格中所含的四边形是通过边来检索,而且排除边界边。
3.根据权利要求1或2所述的三维网格图形简化方法,其特征是所述的确定折叠代价最小的四边形中采用Garland算法中的二次误差度量来计算四边形折叠的代价,由于四边形折叠需要同时考虑4个顶点移动后造成的误差,本方法以进行折叠操作的四边形4个顶点的误差之和作为折叠代价。
4.根据权利要求1或2所述的三维网格图形简化方法,其特征在于所述的折叠化简操作包括新顶点位置的确定,新顶点的位置可以有如下方法选择(a)子集位置即四边形四个顶点的其中一个顶点,子集位置由于不产生新顶点,需要存储及处理开销较小,适合像移动终端设备这样的对简化效果要求不高,但对处理开销相对严格的场合;(b)最佳位置由于折叠代价函数是二次函数,因此可以计算出其最小值作为折叠后的新顶点;如以上计算无解,则可以选取四边形的四个顶点或公共边及外部边的中点这9个位置中的一个作为新顶点的位置。
5.根据权利要求1或2所述的三维网格图形简化方法,其特征在于所述的折叠化简操作中对于网格中含有一条或多条边界边的边界四边形作以下处理在该三角形集合的每条边界边上作一个通过该边界边并与该边界边所在的边界三角形垂直的平面a,在计算折叠代价时要考虑新顶点到平面a的距离,保证新顶点不会偏离边界,保持了图形的边界。
全文摘要
本发明公开了一种基于四边形折叠的三维网格图形简化方法,包括步骤①获取三维图形的网格信息数据;②定义并检索出网格中所含的四边形;③确定折叠代价最小的四边形;④折叠化简操作。本方法不仅可以简化复杂的三维图形数据降低对存储、显示、传输等方面的指标要求,而且与已有方法相比,具有更高的简化速度,是一种快速高效的三维网格图形简化方法。
文档编号G06T15/00GK1822051SQ20061003452
公开日2006年8月23日 申请日期2006年3月21日 优先权日2006年3月21日
发明者罗笑南, 陈华鸿 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1