当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于预测-校正模型的网格简化方法技术

技术编号:19826219 阅读:37 留言:0更新日期:2018-12-19 16:20
本发明专利技术公开了一种基于预测‑校正模型的网格简化方法,包括:读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;计算出所有边的初始折叠误差和对应的新顶点的位置,将初始折叠误差插入优先队列中;从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;判断满足设定的简化条件为止。本发明专利技术能够在快速高效的精简网格的同时,有效的控制边折叠过程中的累积误差,改善简化模型的质量,提升整体的简化效果。

【技术实现步骤摘要】
一种基于预测-校正模型的网格简化方法
本专利技术属于计算机图形学领域,涉及三维网格简化技术,特别是涉及一种基于预测-校正模型的网格简化方法。
技术介绍
在计算机中,三维模型通常表示为面模型或者体模型;其中,使用多边形网格尤其是三角网格的面模型最为常用,这种模型的通用性和灵活性比较好,而且数学表示简单。随着人们对于图像质量要求的提高,网格模型复杂度也随之提高,即便是一个非常简单的模型,可能也需要上万个三角面来描述,因此网格模型简化算法的研究显得尤为重要。目前基于三角网格的简化方法有许多种,根据原理的不同大致可以分为顶点删除法、顶点聚类法、边折叠法和面折叠法等。其中,边折叠法使用最为广泛。Garland等提出基于QEM(QuadricErrorMetrics,二次误差测度)的简化算法,其误差测度为顶点到平面的距离平方和,优点为计算速度快,生成网格较为平均,是一种非常有效的化简算法。但此方法会在边折叠过程中引入折叠误差,并造成误差的累积。
技术实现思路
为解决上述问题,本专利技术公开了一种基于预测-校正模型的网格简化方法,通过校正边折叠过程中新顶点的二次误差矩阵,能够有效的控制简化过程中的累积误差。为了达到上述目的,本专利技术提供如下技术方案:一种基于预测-校正模型的网格简化方法,包括如下步骤:第一步,读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;第二步,计算出所有边的初始折叠误差和对应的新顶点的位置,并将初始折叠误差插入优先队列中;第三步,从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;第四步,根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;第五步,重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;第六步,判断是否满足简化条件,若不满足,则返回第三步;若满足,则过程结束。进一步的,第一步包括如下过程:通过下式计算每个面的基础二次方矩阵Kp,存入对象的属性中:其中,p=[abcd]T代表了平面:ax+by+cz+d=0(a2+b2+c2=1)a、b、c由面的单位法向量得到,d=-(ax+by+cz);将计算获得的矩阵Kp保存在顶点的属性中;通过下式计算所有顶点的二次误差矩阵Q:其中planes(v)代表了与顶点v相邻的所有面,最终将计算获得的Q保存在顶点的属性中。进一步的,第二步中新顶点位置和折叠误差的计算方法如下:通过下式计算新顶点的二次误差矩阵的估计值判断矩阵是否可逆,其中,qij是矩阵中的项;如果矩阵不可逆,则从折叠边的两个端点v1、v2或中点(v1+v2)/2中选择折叠代价最小的作为折叠新顶点;如果矩阵可逆,则计算出该新顶点的位置为:通过下式计算折叠误差:进一步的,所述第三步更新相关顶点和面的过程中包括以下过程:获取顶点v1,v2所有相邻的面,删除共有的面,将其他面中的顶点v1,v2替换为新顶点获取顶点v1,v2所有相邻的顶点,更新这些顶点的相邻顶点列表,用新顶点代替v1,v2,并同时更新新顶点的相邻顶点列表。进一步的,所述第三步中使用costHeap的delMin()方法获得折叠代价最小的一条边。进一步的,所述第四步包括以下过程:针对折叠后的新顶点重新计算与其相邻的面的基础二次方矩阵:重新计算顶点的二次误差矩阵:使用上式中的取代第二步中二次误差矩阵的预测值进一步的,所述第五步使用与第二步相同的方法重新计算与新顶点相邻的边的折叠误差和对应的折叠点的位置。进一步的,所述第六步中的简化条件为顶点数或简化比例。与现有技术相比,本专利技术具有如下优点和有益效果:本专利技术采用预测-校正的思想进行边折叠,与原有方法相比,新顶点的二次误差矩阵由更新后的邻接面计算而来,而不是直接由两个端点的二次误差矩阵相加得到。基于此,本专利技术能够在快速高效的精简网格的同时,有效的控制边折叠过程中的累积误差,改善简化模型的质量,尤其是对于细节的保留效果突出,有较强的通用性,相较于传统方法能够取得更为突出的简化效果,从而提升整体的简化效果。附图说明图1为本专利技术提供的一种基于预测-校正模型的网格简化方法的流程图。图2为采用QEM算法和本专利技术方法对dinosaur模型进行简化的效果对比图;其中(a)为原模型;(b)为采用QEM算法对原模型简化后效果图,简化比例50%;(c)为采用QEM算法对原模型简化后效果图,简化比例10%;(d)为采用本专利技术方法对原模型简化后效果图,简化比例50%;(e)为采用本专利技术方法对原模型简化后效果图,简化比例10%。图3为图2中QEM算法和本专利技术方法在简化比例α=0.1时局部细节放大比较图,其中(a)为QEM算法细节放大图,(b)为本专利技术方法放大图。图4为采用QEM算法和本专利技术方法对castle模型进行简化的效果对比图;其中(a)为原模型;(b)为采用QEM算法对原模型简化后效果图,简化比例10%;(c)为采用本专利技术方法对原模型简化后效果图,简化比例10%。具体实施方式以下将结合具体实施例对本专利技术提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本专利技术而不用于限制本专利技术的范围。本实施例采用Java作为编程语言,如图1所示,本实施例采用如下步骤:步骤1,读取三维网格中所有的顶点和面计算基础二次方矩阵Kp和二次误差矩阵Q。定义p=[abcd]T代表了平面:ax+by+cz+d=0(a2+b2+c2=1)a、b、c可以由面的单位法向量得到;d=-(ax+by+cz),通过代入面的一个顶点坐标,可以获得d的值。使用距离的平方作为误差的度量,折叠点v的误差可以写作:其中planes(v)代表了与顶点v相邻的所有面,将其写成二次型的形式:其中,Kp是平面p的基础二次方矩阵:建立两个类Vertex和Face,用来对应模型中的顶点和面。对三维obj文件进行解析,读取网格三维网格中所有的顶点和面,分别建立两个ArrayList:VertexList用于保存顶点,FaceList用于保存面。在解析的同时,保存与顶点相邻的顶点和面的信息,存入Vertex属性中的顶点邻接表和面邻接表中。首先遍历FaceList,对其中的每一个Face对象(即所有面)计算基础二次方矩阵Kp,存入对象的属性中,将计算获得的矩阵Kp保存在顶点的属性中。接着遍历顶点的列表VertexList,计算所有顶点的二次误差矩阵Q,某一顶点v的初始二次误差矩阵定义为相邻面基础二次方矩阵乘以面积约束因子的和,即初始二次误差矩阵为:最终将计算获得的Q保存在顶点的属性中。步骤2,在顶点的数据结构中包括与其相邻的待折叠的边的另一个顶点,最小的折叠代价以及新顶点的位置,这样就可以将所有边的折叠代价作为顶点的属性保存在顶点的数据结构中。本步骤对于列表VertexList中的每个顶点Vertex,遍历与其相邻的所有顶点,从而遍历两个顶点之间构成的与顶点Vertex相邻的边,计算边的折叠代价。计算方法为:在计算每条边的初始折叠误差时,使用边的两个顶点的二次误差矩阵之和作为新顶点的二次误差矩阵的估计值,并以此计算新顶点的位置。即对于边两个顶点v1,v2,在步骤1中已经计算出了其二次误差矩阵Q(v1)和Q(v2),计算判断矩阵是否可逆。其中,qij是矩阵中的项。如果矩阵不可逆,则从折叠边的两个本文档来自技高网...

【技术保护点】
1.一种基于预测‑校正模型的网格简化方法,其特征在于,包括如下步骤:第一步,读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;第二步,计算出所有边的初始折叠误差和对应的新顶点的位置,并将初始折叠误差插入优先队列中;第三步,从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;第四步,根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;第五步,重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;第六步,判断是否满足简化条件,若不满足,则返回第三步;若满足,则过程结束。

【技术特征摘要】
1.一种基于预测-校正模型的网格简化方法,其特征在于,包括如下步骤:第一步,读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;第二步,计算出所有边的初始折叠误差和对应的新顶点的位置,并将初始折叠误差插入优先队列中;第三步,从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;第四步,根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;第五步,重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;第六步,判断是否满足简化条件,若不满足,则返回第三步;若满足,则过程结束。2.根据权利要求1所述的基于预测-校正模型的网格简化方法,其特征在于,第一步包括如下过程:通过下式计算每个面的基础二次方矩阵Kp,存入对象的属性中:其中,p=[abcd]T代表了平面:ax+by+cz+d=0(a2+b2+c2=1)a、b、c由面的单位法向量得到,d=-(ax+by+cz);将计算获得的矩阵Kp保存在顶点的属性中;通过下式计算所有顶点的二次误差矩阵Q:其中planes(v)代表了与顶点v相邻的所有面,将计算获得的Q保存在顶点的属性中。3.根据权利要求1所述的基于预测-校正模型的网格简化方法,其特征在于,第二步中新顶点位置和折叠误差的计算方法如下:通过下式计算新顶点的二次误差矩阵的估计值判断矩阵...

【专利技术属性】
技术研发人员:王慧青焦越吴煜豪杨哲
申请(专利权)人:东南大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1