一种计算机三维网格图形的简化方法

文档序号:6458794阅读:267来源:国知局

专利名称::一种计算机三维网格图形的简化方法
技术领域
:本发明属于计算机图形图像处理领域,涉及到一种对三维网格图形进行简化的方法。技术背景随着科学技术的不断进步,三维网格模型作为一种新的媒体形式,已经开始逐渐进入人们的生产和生活中,在虚拟现实、动画游戏、在计算机图形学、计算机辅助设计、地理信息系统、医学图形等领域越来越多地应用到三维网格图形,这些图形动辄产生数以百万计的面片,对计算机的存储容量、处理速度、绘制速度、传输效率等都提出很高的要求,随着三维激光扫描以及建模技术的快速发展,取得各种真实物体的高精度三维模型已不困难。而与此同时,这些模型的三维网格也变得越来越稠密,数据量不断增大,从而给模型的传输和绘制带来很大困难。这些三角形网格模型表面的数据点往往是过采样的,特别是在曲率较小的部分,实际上只需要很少的采样点就足以表达模型的几何形状。因此解决三角网格模型数据量大的一个办法就是对网格数据进行简化,用尽可能少的数据构造原始模型的逼近模型。现有的网格数据简化的几何元素删除方法是一种重要的图形简化方法,其原理是在保持一定的几何误差的前提下,删除对模型几何特征影响较小的几何"图元"。"删除"又分直接删除、通过合并两个或多个面来删除边或面、对边或三角形进行折叠等三种情况,移去或删除操作一直进行到模型不能简化或达到指定近似误差为止。关于几何元素删除的算法,国内外不少学者提出了很多的算法,按照"图元"的不同,这些方法可以被大致分为三个类别,如附图l所示顶点删除VertexDecimationProcess(VDP):基本操作是一个顶点及其相邻的三角面片被删除,并且对产生的空洞进行重新三角化。边折叠EdgeCollapseProcess(ECP):—条边被折叠成一个新的顶点,同时边的相邻的两个三角形被删除。这是被广泛使用的--种简化操作,不少算法都是基于这种操作的。三角形折叠TriangleCollapseProcess(TCP):网格中某个三角形折叠成-一个新顶点,同时删除与这个I日三角形共边的相邻三角形。以上三种几何元素删除算法中,被删除的点、边、面等都属于网格的基本几何要素,可以从网格模型中直接获得,属于直接的几何元素删除简化算法。这类直接的几何元素删除算法,例如边折叠由于每次操作只对模型作小量的修改,因此简化的质量比较出色,现在大部分的研究都是集中在边折叠操作的基础上。然而,小幅度的修改却需要更多的简化次数,简化的时间也可能因此而增加,所以,增加每次被折叠的几何元素数量,可以减少简化的次数,也有可能减少简化所需要的时间。本发明根据这种利用三维空间中的多个三角形可以组合构成多边形的特性,归纳出一类以二次误差为误差量度的几何元素删除的图形简化算法,艮口n边形折叠简化算法,该算法包含边折叠、三角形折叠这些直接几何要素删除的情况,也包含间接几何元素(n>3)删除的情况。
发明内容本发明的目的在于克服现有技术的不足,提供一种新的网格简化方法,其实质就是减少模型的点和面,但又要逼近原始网格。为了实现发明目的,采用的技术方案如下一种计算机三维网格图形的简化方法,所述简化方法基于空间n边形折叠简化算法,对网格图形的几何元素进行删除,以实现简化目的,并采用Garland的二次误差来对简化进行误差控制。所述空间n边形折叠简化算法,具体包含11=2的边折叠、11=3的三角形折叠,n>3的几何要素删除。所述简化方法具体包括如下步骤(1)检索网格中的空间n边形;(2)计算每个空间n边形的误差矩阵;(3)计算每个空间n边形折叠后生成的最优收縮目标点;(4)计算折叠误差并排序入栈;(5)将栈顶最小误差的空间n边形移出栈,并进行折叠;(6)看栈是否为空,若空,结束简化,否则转到步骤(5)。所述步骤(1)还涉及网格和网格中的空间n边形的定义,所述网格定义为空间一组三角形,沿公共边及顶点处相邻接,把这样的一组三角形定义为三角形网格TM,TM可由顶点集V=(Vl,v2,...,Vn)和三角形集合丁=(丁1/12,...,10所组成的二元组(V,T)来表示;所述空间n边形定义为对TM中任一个三角形,如果由该三角形及其相邻的n-3{n为大于2的正整数}个三角形能够组成一个具有n条不同时被这些三角形相交的边的多边形,则这个多边形称为空间n边形。所述步骤(1)的检索规则如下由三维网格中的任一三角形出发,该三角形的其中一个顶点为公共点,沿某一方向检索依次得到的与这个三角形共点的n-3个三角形,可以与该三角形共同组合构成空间n边形;或是采用公共三角形的方式进行组合,以某个三角形为公共三角形,与其相邻的其它三角形则与之共同组成一个空间n边形。所述步骤(2)采用Garland的二次误差来计算误差矩阵,具体计算方法如下一个顶点移动到新顶点的误差表示为<formula>formulaseeoriginaldocumentpage8</formula>其中,Kp为4X4对称矩阵,艮卩Kp二P/^二由于空间n边形折叠需要同时考虑n个顶点移动后造成的误差,所以有£△(')=vT(Q(vO+Q(V2)+,.,+Q(Vn))vTQV=qux2+2q12xy+2q13xz+2q14x+q22y2+2q23yz+2q24y+q33z2+2q34z+q44。所述步骤(3)的最优收縮目标点计算如下通过£(Ei)的展开式,求对x,y,z的偏导数,得到方程组a^O)/ar=3AO)/^;=a^(v)/8z=o,如该方程组有解,则这个解即为最优收縮目标点的所在位置<formula>formulaseeoriginaldocumentpage8</formula>否则,可以在空间n边形各条边的端点或中点及空间n边形的重心位置中选取一个作为最优收縮目标点。所述步骤(4)通过vTQv计算其折叠误差并排序入栈,栈顶为最小误差值。所述步骤(5)的折叠算法是把网格中的图元收縮成一个新顶点,再把图元相邻的顶点与这个新顶点相连。本发明提出了-一种新的基于空间n边形折叠的几何元素删除网格简化算法,根据三维空间中的多个三角形可以组合构成多边形的特性,归纳出一类以二次误差为误差量度的几何元素删除的图形简化法,即空间n边形折叠简化法,包含边折叠、三角形折叠这些直接几何要素删除的情况,也包含间接几何元素(n〉3)删除的情况。该方法进行一次n边形折叠能减少n-l个顶点及2(n-l)个三角形面片,n越大达到简化目标需要的折叠次数越少,因此,折叠的效率越高。本发明中基于边折叠的方法拥有最小的误差,可以产生最好的简化质量,因此它可以用在网格精确度比较重要的应用中,基于多边形例如三角形、四边形甚至是其他多边形折叠的简化方法速度上较快,因此可以被用在速度要求较高但品质要求相对不高的情况。图l为现有三种几何元素删除的网格简化方法示意图;图2为本发明的网格中由三角形组合构成的空间n边形示意图,其中虚线为内部边,实线为外部边;图3为本发明的空间n边形折叠操作示意图;图4为本发明的实施步骤流程图。具体实施方式下面结合附图对本发明做进一步的说明。本发明的实施步骤流程图如附图4所示,具体包括如下步骤(1)检索网格中的空间n边形;(2)计算每个空间n边形的误差矩阵;(3)计算每个空间n边形折叠后生成的最优收縮目标点;(4)计算折叠误差并排序入栈;(5)将栈顶最小误差的空间n边形移出栈,并进行折叠;(6)更新被折叠的空间n边形的所有相关信息;(7)看栈是否为空,若空,结束简化,否则转到步骤(5)。其中歩骤(1)的检索网格中的空间n边形,首先给网格和网格中的空间n边形-个定义网格空间--组三角形,沿公共边及顶点处相邻接,把这样的一组三角形定义为三角形网格TM,TM可由顶点集V气v!,V2,…,vg和三角形结合T-(T!,T2,…,Tm)所组成的二元组(V,T)来表示。空间N边形对TM中任一个三角形,如果由该三角形及其相邻的(n-3)(n为大于2的正整数}个三角形能够组成一个具有n条不同时被这些三角形相交的边的多边形,并且该多边形在网格中符合普遍性、唯一性原则,则这个多边形称为n边形,表示为N-EDGES-MESHi。检索的规则,组合规则是构成和检索n边形的前提,如附图2所示,由三维网格中的任一三角形出发,该三角形的其中一个顶点为公共点,沿某一方向检索依次得到的与这个三角形共点的n-3个三角形,可以与该三角形共同组合构成n边形,当然,组合的方式也可以存在多种,例如11=6时,也可以釆用公共三角形的方式进行组合,三角形l为公共三角形,其相邻的三角形2,3,4共同组成」个六边形,然而无论是使用何种的组合和检索方式,必须遵循以下两个原则普遍原则n边形组合在网格中是具有普遍意义的,即根据被检索的几何成分和定义的组合规则可以在网格的除了个别局部(边界或周期)外的所有区域找到符合要求的n边形,从而可以对网格中的所有的n边形组合进行误差排序并折叠简化。唯--原则这里包含两个方面的唯一原则,首先使用的组合规则必须唯一,虽然n边形的组合规则可能不止一种,但是在对亍整个模型而言,只能统一采用一种组合规则,以保证误差排序的可比性;其次,可以用三角网格中的某些基本的几何元素在网格中唯一地检索出一个n边形,即这些几何元素与n边形间存在-一-对应的关系,例如图2(a)中的四边形可以由其公共边(虚线)表示,同时三角网格中的边也最多只能检索出一个四边形;图2(b)的五边形可以由公共点与公共三角形2共同表示,图2(c)的六边形可以由公共三角形l表示等等。因此在检索n边形进行误差计算时,只需首先检索出表示它的几何成分,再按照定义的组合规则,即可找到相应的n边形。步骤(2)对检索出来的每个n边形计算其误差矩阵,本发明采用Garland的二次误差来对简化后的效果进行误差控制。这种方法以新顶点到旧顶点相关平面的距离的平方和作为顶点的移动的代价。根据Garland的描述,-个顶点移动到新顶点的误差可以表示为其中,/〈p为4X4对称矩阵《p二^^二由于n边形折叠需要同时考虑n个顶点移动后造成的误差,所以有e(Ei)=EA(v)=vT(Q(Vl)+Q(v2)+..+Q(vn))v=vTQv;=qux2+2q12xy+2q13xz+2q14x+q22y2+2q23yz+2q24y+q33z2+2q34z+q44(2)。步骤(3)计算折叠后生成的最优目标点V:最佳位置可以通过式(2)的展开式,求对x,y,z的偏导数,得到方程组:5A(v)/3x=8A(v)/^y二3A(v)/3z=0,如该方程组有解则这个解即为最优点位置<formula>formulaseeoriginaldocumentpage12</formula>否则,可以在n边形各条边的端点或中点及n边形的重心位置中选取一个作新顶点位置。步骤(4)通过vTQv计算其折叠误差并排序入栈,栈顶为最小误差值vTQv=vT(Q(Vl)+Q(v2)+...+Q(vn))v,其中Q尸S(PPT)。计算出折叠误差以后,对其排序入栈。步骤(5)为进行折叠,选取误差最小的n边形进行折叠,即取步骤(3)中的栈顶元素进行折叠。折叠算法的基本思想就是把网格中的图元收缩成一个新顶点,再把图元相邻的顶点与这个新顶点相连。如附图3所示,每次折叠操作中,与n边形相邻的三角形中与其共边的n个三角形被删除,加上组成n边形自身的n-2个三角形,即一次n边形折叠,共有2(n-l)个三角形同时被删除,顶点数由原来的n个顶点收縮成1个顶点。通过实验,将本发明与现有三种方式进行对比,对比结果如下表所示,从该表格可以很清楚地看出,本发明可以处理多边形,比已经存在的方法具有更高的效率。表1每次n边形折叠操作减少的几何成分<table>tableseeoriginaldocumentpage13</column></row><table>权利要求1、一种计算机三维网格图形的简化方法,其特征在于所述简化方法基于空间n边形折叠简化算法,对网格图形的几何元素进行删除,以实现简化目的,并采用Garland的二次误差来对简化进行误差控制。2、根据权利要求1所述的计算机三维网格图形的简化方法,其特征在于所述空间n边形折叠简化算法,具体包含11=2的边折叠、n=3的三角形折叠,n〉3的几何要素删除。3、根据权利要求1或2所述的计算机三维网格图形的简化方法,其特征在于所述简化方法具体包括如下步骤(1)检索网格中的空间n边形;(2)计算每个空间n边形的误差矩阵;(3)计算每个空间n边形折叠后生成的最优收縮目标点;(4)计算折叠误差并排序入栈;(5)将栈顶最小误差的空间n边形移出栈,并进行折叠;(6)看栈是否为空,若空,结束简化,否则转到步骤(5)。4、根据权利要求3所述的计算机三维网格图形的简化方法,其特征在于所述步骤(1)还涉及网格和网格中的空间n边形的定义,所述网格定义为空间一组三角形,沿公共边及顶点处相邻接,把这样的一组三角形定义为三角形网格丁^1,丁]^可由顶点集¥=^1,力,...,)和三角形集合T气T!,T2,…,TnO所组成的二元组(V,T)来表示;所述空间n边形定义为对TM中任一个三角形,如果由该三角形及其相邻的n-3(n为大于2的正整数}个三角形能够组成一个具有n条不同时被这些三角形相交的边的多边形,则这个多边形称为空间n边形。5、根据权利要求4所述的计算机三维网格图形的简化方法,其特征在于所述步骤(1)的检索规则如下由三维网格中的任一三角形出发,该三角形的其中一个顶点为公共点,沿某一方向检索依次得到的与这个三角形共点的n-3个三角形,可以与该三角形共同组合构成空间n边形;或是采用公共三角形的方式进行组合,以某个三角形为公共三角形,与其相邻的其它三角形则与之共同组成一个空间n边形。6、根据权利要求3所述的计算机三维网格图形的简化方法,其特征在于所述步骤(2)采用Garland的二次误差来计算误差矩阵,具体计算方法如下一个顶点移动到新顶点的误差表示为2<formula>formulaseeoriginaldocumentpage0</formula>其中,Kp为4X4对称矩阵,即^、P/由于空间n边形折叠需要同时考虑n个顶点移动后造成的误差,所以有£(Ei)=i:A(v)=vT(Q(Vl)+Q(v2)+...+Q(Vn》v=vTQv=qux2+2q12xy+2q13xz+2q14x+q22y2+2q23yz+2q24y+q33z2+2q34z+q44。7、根据权利要求6所述的计算机三维网格图形的简化方法,其特征在于所述步骤(3)的最优收縮目标点计算如下通过£(Ej)的展开式,求对X,y,z的偏导数,得到方程组3A(v)/&=a^(v)/^;=3AO)/&=0,如该方程组有解,则这个解即为最优收縮目标点的所在位置<formula>formulaseeoriginaldocumentpage4</formula>否则,可以在空间n边形各条边的端点或中点及空间n边形的重心位置中选取一个作为最优收缩目标点。8、根据权利要求6所述的计算机三维网格图形的简化方法,其特征在于所述步骤(4)通过vTQv计算其折叠误差并排序入栈,栈顶为最小误差值。9、根据权利要求3所述的计算机三维网格图形的简化方法,其特征在于所述步骤(5)的折叠算法是把网格中的图元收縮成一个新顶点,再把图元相邻的顶点与这个新顶点相连。全文摘要本发明提供一种计算机三维网格图形的简化方法,所述简化方法基于空间n边形折叠简化算法,对网格图形的几何元素进行删除,以实现简化目的,并采用Garland的二次误差来对简化进行误差控制。本发明提出的网格简化算法可以简化三维的数据模型,减少数据传输量,解决三维图像数据存储量过大的问题。文档编号G06T15/00GK101241602SQ20081002662公开日2008年8月13日申请日期2008年3月5日优先权日2008年3月5日发明者凌若天,罗笑南,赵黎阳,陈华鸿申请人:罗笑南
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1