一种高质量的实时等值面网络生成方法与流程

文档序号:23264732发布日期:2020-12-11 18:54阅读:232来源:国知局
一种高质量的实时等值面网络生成方法与流程

本发明属于计算机图形学领域,尤其涉及一种高质量的实时等值面网络生成方法。



背景技术:

等值面提取算法是众多算法与应用的处理流水线中的主要计算组件之一,尤其是在三维场景的实时重建中。以增强现实技术为基础的科学可视化应用几乎都需要实时渲染等值面的能力,这往往是通过首先将一个隐式曲面转换为三角形网格,然后再对其进行渲染来实现。当然,更多的应用还需要在生成的网格上进行后续操作与处理,例如碰撞与形变的模拟、虚拟场景与现实场景的交互等。这些应用要求不仅输入的网格质量要较好,而且还需要保证网格生成算法的高度实时性。计算等值面的方法中最为经典和广泛应用的是marchingcubes算法(后文简称mc算法)。mc算法之所以能够成为最为流行的等值面提取算法,主要依赖于其综合了简单性、高效性以及鲁棒性等重要的算法特点。然而,mc算法会产生大量低质量的三角形。因此,mc算法及其变体生成的网格仍然需要额外的后处理步骤来提升三角形网格的质量。随着计算能力的不断提高,现在的实时应用程序中的仿真过程已经十分复杂,标准mc算法生成的低质量网格掣肘了它们的表现。强大的后处理算法可以显著的提升网格质量,它们通过优秀的网格重分算法甚至可以将网格处理至几乎全部都是等边三角形的高质量网格,但它们动辄分钟级的时间消耗导致其根本无法用于实时应用程序中。因此,可以通过改进mc算法的核心步骤来在生成网格并实时提升网格质量,这恰恰可以在保证良好的实时性的同时得到较高质量的网格。marchingcubes算法可以参考文献“lorensenwe,clinehe.marchingcubes:ahighresolution3dsurfaceconstructionalgorithm[j].acmsiggraphcomputergraphics,1987,21(4):163-169”;网格重分算法可以参考文献:“alliezp,ucellig,gotsmanc,etal.recentadvancesinremeshingofsurfaces[m]//shapeanalysisandstructuring.springer,berlin,heidelberg,2008:53-82.”;marchingcubes算法的改进可以参考文献:“newmants,yih.asurveyofthemarchingcubesalgorithm[j].computers&graphics,2006,30(5):854-879.”。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种高质量的实时等值面网络生成方法。本发明利用三维模型的等值面提取技术,基于marchingcubes算法实时生成高质量网格。

本发明的目的是通过以下技术方案来实现的:一种高质量的实时等值面网络生成方法,包括以下步骤:

(1)构建mc算法判例中各三角形的等价边缘;

(2)输入某个三维模型的体素数据,并给定一个等值面值;

(3)将体素数据均匀划分为单个的立方体单元格,根据单元格顶点处的值与等值面值之间的大小关系为每个单元格顶点标记正负号;

(4)根据步骤(3)标记的正负单元格顶点,通过与mc算法中的判例进行对比确定当前单元格所属的判例;

(5)确定判例后,按照mc算法的顶点索引规则生成索引,通过索引查询mc算法中的活动边表,获得等值面与当前立方体单元格相交的边的集合,根据步骤(1)得到当前单元格中各三角形的等价边缘;

(6)评价三角形对应的等价边缘的质量表现;

(7)利用网格重分技术中的连接性修改方法,消除质量表现最差的等价边缘;

(8)针对步骤(7)无法消除的最差等价边缘,通过增加三角形顶点提高三角形等价边缘质量;

(9)移动活动边使其更加垂直于等值面以提高三角形等价边缘质量;

(10)选取下一个立方体单元格重复步骤(4)~(10),直至步骤(3)划分的全部立方体单元格遍历完成;

(11)将所有立方体单元格拼接起来,且各个相邻立方体单元格边上的三角形顶点重合;

(12)将立方体单元格边上的不少于6个三角形共享的三角形顶点向该边的中点移动,得到最终的网格输出。

进一步地,所述步骤(1)包括以下子步骤:

(1.1)将mc算法单个判例中的三角剖分组合拆分为单个三角形;

(1.2)三角形顶点所在边的分布情况共有8种,每一种分布情况构成一组等价边缘。

进一步地,所述步骤(6)包括以下子步骤:

(6.1)将三角形内切圆和外接圆的半径之比作为质量评价指标,绘制质量分布图;

(6.2)根据质量分布图,将可以达到质量上限但不会达到质量下限的等价边缘评价为表现优秀;可以达到质量上限也会达到质量下限的等价边缘评价为表现良好;不能达到质量上限但会达到质量下限的等价边缘评价为表现最差。

进一步地,所述步骤(8)包括以下子步骤:

(8.1)找到当前立方体单元格内最长的一条三角形的边;

(8.2)在步骤(8.1)找到的最长边的中点处插入一个新的顶点,再将其他各个三角形顶点分别连接至该新插入的顶点。

进一步地,所述步骤(9)包括以下子步骤:

(9.1)确定立方体单元格每条活动边的两个端点到等值面的梯度方向及梯度方向的垂直方向;

(9.2)以活动边的一个端点为起点,沿着其到等值面的梯度方向的垂直方向作延长线,并以活动边另一个端点为起点,沿着其到等值面的梯度方向作延长线,求两延长线的交点;同理,交换两端点并作延长线获得另一个交点;两个交点与两个端点形成一个四边形,取四边形中与梯度方向平行的两条边的中点作为新的活动边的端点。

进一步地,所述步骤(12)中,采用gain函数调制位移距离。

本发明的有益效果是:本发明创新地提出并使用了等价边缘框架,系统地分析了mc算法生成的网格的质量,设计了全新的mc算法判例表,消除了大部分表现不良的判例,基本防止了退化三角形在网格中的出现可能性;针对不能完全消除的其他判例,本发明通过对等价边缘类别的划分总结出了其表现与网格边缘入射活动边的位置的关系,利用边缘形变技术将立方体单元格的顶点拆分移动,优化网格边缘入射角度,提高了特定判例的质量表现。这两大优化过程都可以十分自然地被嵌入到原始mc算法中,二者结合使得算法在不失去mc算法的简单高效的特点下,有效地提升了产生的网格的质量,以接近实时算法的运行速度接近了网格后处理算法的网格质量。本发明采用了科学的参数选择方法优化算法的运行效果,设计了近似效果良好、运行速度快的近似算法代替了边缘型变技术复杂的计算过程,保证了算法较为良好的实时性。本发明可以应用到三维重建、增强现实等众多实时图形系统中,应用空间广泛,算法有良好的实时性和简洁性,且生成的网格在质量及保真度上都较现有方法有良好的提高。

附图说明

图1为mc算法中立方体单元格判例分布情况示意图;共有15种基础判例,每个立方体单元格的8个顶点被分为正负两组,正顶点无特殊标记,负顶点由实心顶点表示;三角形剖分表明了在该情况下单元格内边上的三角形剖分顶点分布情况以及顶点连接顺序,三角形剖分顶点用空心圆表示;左上角的数字为判例的编号。

图2为8组等价边缘示意图;每一组等价边缘通过三条边之间的相对位置关系进行区别,如相交、平行以及异面,对这些等价边缘进行组合即可得到mc算法中的各个判例;左上角的数字为等价边缘的编号。

图3为连接性修改方案示意图;各个面上的数字标识了三种判例中出现的7组等价边缘;上行三个为3个mc判例中的原始三角剖分模式,而下行三个显示了利用本发明修改后的连接性;重新连接后本发明将这些单元格中的表现最差的等价边缘2删除;左上角的数字为判例的编号。

具体实施方式

下面结合附图以及具体实施方式对本发明做进一步说明。

一种高质量的实时等值面网络生成方法,包括以下步骤:

(1)构建等价边缘,包括以下子步骤:

(1.1)将mc算法单个判例中由多个三角形组成的三角剖分组合(等值面)依次拆分为单个三角形。mc算法的判例如图1所示。

(1.2)拆分全部的判例后,可以得到有限个类型的单个三角形,三角形的类型是由组成其的三条边的相对位置关系决定的,获取所有判例中的三角形分布情况,可知三角形顶点所在边的分布情况共有如图2所示的8种,得出mc算法中存在的所有边缘配置,即每一种三角形顶点的所在边分布情况构成一组等价边缘。

(2)输入某个三维模型的体素数据,并给定一个等值面值以获得该等值面值处的网格。

(3)将体素数据均匀划分为单个的立方体单元格,每个单元格有8个顶点,根据顶点处的值与等值面值之间的大小关系为每个顶点标记正负号;只需保证大于、小于情况的顶点符号相反,且等于情况的符号可任意设置。

(4)根据步骤(3)标记的正负顶点,通过与mc算法判例进行对比确定当前单元格所属的判例。

(5)确定判例后,按照标准mc算法的顶点索引规则生成索引,通过索引查询标准mc算法中的活动边表,获得等值面与当前立方体单元格相交的边(活动边)的集合,确定立方体单元格上的所有活动边配置,根据步骤(1)得到各三角形的等价边缘。

(6)评价三角形的质量表现,包括以下子步骤:

(6.1)在立方体单元格中对每组等价边缘形成的三角形可以进行质量分析,由于三角形的顶点都必须在确定的边缘(即线段)上移动,因此其质量是有约束的;将三角形内切圆和外接圆的半径之比作为质量评价指标,三角形越接近等边三角形质量越高,最小值为质量下限最大值为质量上限,绘制横轴为三角形质量、纵轴为分布概率的质量分布图;其中质量评价指标的分布概率不为零表示可以达到,分布概率为零表示不会达到。

(6.2)根据质量分布图评价其质量表现,将可以达到质量上限但不会达到质量下限的等价边缘4、5和7评价为表现优秀;可以达到质量上限也会达到质量下限的等价边缘0、1、3和6评价为表现良好;不能达到质量上限但会达到质量下限的等价边缘2评价为表现最差。

(7)利用网格重分技术中的连接性修改方法,即在保证组成各个三角形的顶点不变的情况下,修改顶点之间的连接关系从而修改三角形的各条边组成情况;这一过程往往会用表现良好的等级边缘替代表现优秀的,从而将部分情况中质量表现最差的等价边缘完全消除,如图3所示。

(8)针对无法通过连接性修改方法消除的最差等价边缘,也就是无论怎样修改边的连接方式,等价边缘2永远会存在;通过以下子步骤提高三角形质量:

(8.1)遍历立方体单元格内的所有三角形,记录每个三角形的各边长度,寻找到单元格内最长的一条三角形的边。

(8.2)在立方体单元格内部选取(8.1)中记录的三角形的最长边中点,在该位置插入一个新的顶点,然后再将其他各个三角形顶点分别连接至该新插入的顶点,即可将剩余情况中的最差等价边缘完全消除。

(9)移动活动边使其更加垂直于等值面以提高三角形的质量,包括以下子步骤:

(9.1)对每一条活动边,求出活动边的两个端点到等值面的梯度方向及梯度方向的垂直方向。

(9.2)以活动边的一个端点a为起点,沿着其到等值面的梯度方向的垂直方向作延长线,并以活动边另一个端点b为起点,沿着其到等值面的梯度方向作延长线,求两延长线的交点;同理,交换两端点,以活动边的另一个端点b为起点,沿着其到等值面的梯度方向的垂直方向作延长线,并以活动边一个端点a为起点,沿着其到等值面的梯度方向作延长线,可获得另一个交点;两个交点与两个端点形成一个四边形,取四边形中与梯度方向平行的两条边的中点。

(9.3)对活动边的端点执行位移操作,将其分别移动到步骤(10)得到的两个中点所在的位置,从而改变活动边的形状来改善活动边与等值面的垂直关系,促使活动边更加垂直于等值面以提高三角形的质量。

(10)选取下一个立方体单元格重复步骤(4)~(10),直至步骤(3)划分的全部立方体单元格遍历完成。

(11)将所有立方体单元格拼接起来,且各个相邻立方体单元格边上的三角形顶点重合。

(12)将立方体单元格边上的不少于6个三角形共享的三角形顶点向该边的中点移动,这些三角形可分布在多个立方体单元格中,采用gain函数调制位移距离,gain函数的参数设置为0.5,得到最终的等值面网络网格输出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1