CN109035405B - 一种基于预测-校正模型的网格简化方法 - Google Patents
一种基于预测-校正模型的网格简化方法 Download PDFInfo
- Publication number
- CN109035405B CN109035405B CN201810654773.XA CN201810654773A CN109035405B CN 109035405 B CN109035405 B CN 109035405B CN 201810654773 A CN201810654773 A CN 201810654773A CN 109035405 B CN109035405 B CN 109035405B
- Authority
- CN
- China
- Prior art keywords
- vertex
- folding
- matrix
- quadratic
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000011159 matrix material Substances 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000002441 reversible effect Effects 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 3
- 239000013598 vector Substances 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 6
- 241000086550 Dinosauria Species 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 2
- 210000001015 abdomen Anatomy 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种基于预测‑校正模型的网格简化方法,包括:读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;计算出所有边的初始折叠误差和对应的新顶点的位置,将初始折叠误差插入优先队列中;从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;判断满足设定的简化条件为止。本发明能够在快速高效的精简网格的同时,有效的控制边折叠过程中的累积误差,改善简化模型的质量,提升整体的简化效果。
Description
技术领域
本发明属于计算机图形学领域,涉及三维网格简化技术,特别是涉及一种基于预测-校正模型的网格简化方法。
背景技术
在计算机中,三维模型通常表示为面模型或者体模型;其中,使用多边形网格尤其是三角网格的面模型最为常用,这种模型的通用性和灵活性比较好,而且数学表示简单。随着人们对于图像质量要求的提高,网格模型复杂度也随之提高,即便是一个非常简单的模型,可能也需要上万个三角面来描述,因此网格模型简化算法的研究显得尤为重要。
目前基于三角网格的简化方法有许多种,根据原理的不同大致可以分为顶点删除法、顶点聚类法、边折叠法和面折叠法等。其中,边折叠法使用最为广泛。Garland等提出基于QEM(Quadric Error Metrics,二次误差测度)的简化算法,其误差测度为顶点到平面的距离平方和,优点为计算速度快,生成网格较为平均,是一种非常有效的化简算法。但此方法会在边折叠过程中引入折叠误差,并造成误差的累积。
发明内容
为解决上述问题,本发明公开了一种基于预测-校正模型的网格简化方法,通过校正边折叠过程中新顶点的二次误差矩阵,能够有效的控制简化过程中的累积误差。
为了达到上述目的,本发明提供如下技术方案:
一种基于预测-校正模型的网格简化方法,包括如下步骤:
第一步,读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;
第二步,计算出所有边的初始折叠误差和对应的新顶点的位置,并将初始折叠误差插入优先队列中;
第三步,从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;
第四步,根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;
第五步,重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;
第六步,判断是否满足简化条件,若不满足,则返回第三步;若满足,则过程结束。
进一步的,第一步包括如下过程:
通过下式计算每个面的基础二次方矩阵Kp,存入对象的属性中:
其中,p=[a b c d]T代表了平面:
ax+by+cz+d=0(a2+b2+c2=1)
a、b、c由面的单位法向量得到,d=-(ax+by+cz);
将计算获得的矩阵Kp保存在顶点的属性中;
通过下式计算所有顶点的二次误差矩阵Q:
其中planes(v)代表了与顶点v相邻的所有面,最终将计算获得的Q保存在顶点的属性中。
进一步的,第二步中新顶点位置和折叠误差的计算方法如下:
判断矩阵
通过下式计算折叠误差:
进一步的,所述第三步更新相关顶点和面的过程中包括以下过程:
进一步的,所述第三步中使用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=[a b c d]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),计算判断矩阵
则折叠所产生的误差(即折叠代价)为:
将该误差插入到优先队列中,同时记录相应的顶点索引,以便后续步骤引用。
步骤3,使用costHeap的delMin()方法获得折叠代价最小的一条边,对其进行折叠操作,并更新相关顶点和面的属性。对于一次折叠操作其新顶点的坐标由上一步计算得到。在一次边折叠后,要更新与该边关联的所有顶点和面的拓扑关系,进行局部网格重构,具体如下:
分别使用两个列表记录与原顶点v1,v2相邻的所有的面和所有的顶点。删除与原顶点v1,v2所有相邻的面,重新建立新顶点到所有相邻顶点的连接。更新相关顶点的顶点邻接表(保存相邻顶点信息)和面邻接表(保存相邻面信息)。
步骤6,判断是否满足设定的简化条件,本例中简化条件设置为判断网格当前的顶点数是否小于设定的顶点数N。若顶点数大于N,则返回步骤3;若顶点数小于等于N,则算法结束。简化条件可以为其他条件,如简化比例等。
为了说明本发明中算法的有效性,我们分别对多个模型使用QEM算法和本发明方法进行简化,对比简化后的结果。
图2是dinosaur模型的简化效果对比。图2(a)是原始模型,包含了约2000个顶点和3000个面。图(b)和图(c)分别是使用QEM算法将模型的顶点数简化至原来的50%和10%的效果,图(d)和图(e)则是使用本发明方法将模型的顶点数简化至原来的50%和10%的效果。
从图中可以看出,当简化的比例较小(50%)的时候,两种算法都能得到非常好的简化效果,细节特征都得到了很好的保留,几乎无法看出它们与原模型的区别。但是当简化的比例较大(10%)的时候,两种算法还是显示出了区别。QEM算法生成的网格较为平均,保证了模型的整体效果,但是这也导致了其在平坦的区域使用了较多的三角形(背部和腹部),从而使一些明显的特征保留不够,如恐龙模型的眼睛区域;而改进后的方法在恐龙面部和腿部使用了更多的三角形,因此对细节特征的保留更好,如图3所示。
图4是castle模型的简化效果对比。图4(a)是原始模型,包含约3000个顶点和6000个面。图4(b)和图4(c)分别是使用QEM算法和本文的算法对原模型简化到顶点数的10%的效果图。此模型与dinosaur模型相比,存在许多曲率剧烈变化的表面,因此特征更为突出。可以发现,在图(c)中,城堡的角旗部分使用了更多的三角形,因此特征保留更为完整;而在原本相对平整的城墙部分使用的三角形更少,整体的简化效果也更好。
本方案在算法复杂度上,由于三角面的面积可以非常容易的获得,计算新顶点的二次误差矩阵也可以在常数时间内完成,所以时间复杂度与QEM算法相同,均为O(nlogn),并不会显著增加运行时间。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (7)
1.一种基于预测-校正模型的网格简化方法,其特征在于,包括如下步骤:
第一步,读取三维网格中所有的顶点和面,计算其基础二次方矩阵和二次误差矩阵;
第二步,计算出所有边的初始折叠误差和对应的新顶点的位置,并将初始折叠误差插入优先队列中;
第三步,从优先队列中选择折叠误差最小的一条边,进行一次折叠操作,并更新相关的顶点和面;
第四步,根据新顶点的位置,重新计算相邻面的基础二次方矩阵和新顶点的二次误差矩阵;包括以下过程:
第五步,重新计算与折叠点相邻的边的折叠误差和对应的新顶点的位置,更新优先队列;
第六步,判断是否满足简化条件,若不满足,则返回第三步;若满足,则过程结束。
5.根据权利要求1所述的基于预测-校正模型的网格简化方法,其特征在于,所述第三步中使用costHeap的delMin()方法获得折叠代价最小的一条边。
7.根据权利要求1所述的基于预测-校正模型的网格简化方法,其特征在于,所述第六步中的简化条件为顶点数或简化比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810654773.XA CN109035405B (zh) | 2018-06-22 | 2018-06-22 | 一种基于预测-校正模型的网格简化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810654773.XA CN109035405B (zh) | 2018-06-22 | 2018-06-22 | 一种基于预测-校正模型的网格简化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109035405A CN109035405A (zh) | 2018-12-18 |
CN109035405B true CN109035405B (zh) | 2023-04-18 |
Family
ID=64610850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810654773.XA Active CN109035405B (zh) | 2018-06-22 | 2018-06-22 | 一种基于预测-校正模型的网格简化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109035405B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465985B (zh) * | 2020-11-24 | 2023-09-05 | 中国银联股份有限公司 | 网格模型简化方法以及装置 |
CN114741750A (zh) * | 2022-03-21 | 2022-07-12 | 清华大学 | 模型简化方法、装置、电子设备及存储设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546647A (zh) * | 2012-01-17 | 2012-07-04 | 西北大学 | 一种网格模型简化方法和基于该方法的网格模型传输方法 |
CN107564105B (zh) * | 2017-08-29 | 2021-01-12 | 东南大学 | 一种针对不光滑表面考虑面积和法向量的网格简化方法 |
-
2018
- 2018-06-22 CN CN201810654773.XA patent/CN109035405B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109035405A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109584357B (zh) | 基于多轮廓线的三维建模方法、装置、系统及存储介质 | |
Freitag et al. | Local optimization‐based simplicial mesh untangling and improvement | |
US7737969B2 (en) | System and program product for re-meshing of a three-dimensional input model using progressive implicit approximating levels | |
CN113781667B (zh) | 三维结构简化重建方法、装置、计算机设备和存储介质 | |
US8174525B2 (en) | Tetrahedral mesh generating method for finite-element analysis and finite-element analyzing system using its method | |
US9922458B2 (en) | Methods and systems for generating polycube segmentations from input meshes of objects | |
US7876322B2 (en) | Method and apparatus for fast and efficient mesh simplification | |
WO2013123636A1 (en) | Method and apparatus for mesh simplification | |
US20120029882A1 (en) | System and method for generating quadrangulations | |
CN109035405B (zh) | 一种基于预测-校正模型的网格简化方法 | |
CN112687002B (zh) | 一种三维地质模型网格优化方法 | |
CN116580048A (zh) | 一种提取房屋倾斜模型上直角房屋的轮廓线的方法及系统 | |
CN115345988A (zh) | 基于顶点重要度的二次误差度量边折叠bim轻量化方法 | |
Zhou et al. | Improvement of normal estimation for point clouds via simplifying surface fitting | |
US7733338B2 (en) | Reduction of a mesh with preservation of flow lines | |
Greß et al. | Efficient representation and extraction of 2-manifold isosurfaces using kd-trees | |
CN107564105B (zh) | 一种针对不光滑表面考虑面积和法向量的网格简化方法 | |
Dyn et al. | Meshfree thinning of 3D point clouds | |
CN112381950B (zh) | 一种网格孔洞修补方法、电子设备和计算机可读存储介质 | |
CN113470177A (zh) | 一种gis系统中三维模型几何自适应简化方法 | |
CN111130569B (zh) | 一种空间信息数据自适应容错处理方法及系统 | |
CN108876922B (zh) | 一种基于内二面角补角正则化的网格修补方法 | |
CN111274732A (zh) | 一种基于“连接关系-位置”迭代优化的网格修复方法 | |
CN111275805A (zh) | 一种基于3d模型纹理的模型网格优化方法和装置 | |
CN110599597A (zh) | 基于高斯曲率滤波的三维网格处理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |