基于逆插值Loop的网格简化方法技术

技术编号:13954720 阅读:264 留言:0更新日期:2016-11-02 11:09
本发明专利技术公开一种基于逆插值Loop的网格简化方法,包括顶点划分、偏移量计算、更新网格和循环操作等步骤,本发明专利技术将插值Loop细分模式运用到逆插值Loop的网格简化上,即将逼近型的Loop细分同插值型细分进行融合;插值型的细分模式产生的极限曲面不会收缩,具有容易控制生成曲面外形的特点;将其逆用在简化网格上将极大减小内存占用量;相较于传统Loop,扩大了细分的模板,容纳更多的控制顶点,实现边缘的插值点对中心点的补偿,在进行简化时依次删除掉网格中的冗余信息,最终生成由一个初始网格和一系列所占空间更小的偏移量所组成的渐进网格。

【技术实现步骤摘要】

本专利技术涉及几何体造型
,具体涉及一种基于逆插值Loop的网格简化方法
技术介绍
渐进网格(PM,Progressive Meshes)是由Hoppe在1996年的SIGGRAPH会上提出的方法,用来解决大数据量的三维网格受限于传输带宽与存储空间的问题。通常研究人员都是采用基于二次误差测量(QEM,quadric error metrics)基础上的边折叠、点分裂方法或者基于此方法的一系列改进方法来进行网格简化和生成多层次细节(LOD,Level of Details)的网格模型。近来也有许多采用细分的逆过程来简化网格方法,其中罗笑南等提出了逆蝶形细分的方法,对图形进行网格简化并生成渐进网格;马建平等人则采用逆Loop细分进行了网格简化操作。但他们的方法都有一些不足,例如郑贵峰在每一层网格简化时都需要对上一层留下来的偶点进行补偿,同样重建的过程中也需要对同一点进行反补偿,这样操作就会相对复杂。公告号为CN1975786A为的中国专利技术专利申请公开了“一种基于逆Loop细分的渐进网格生成方法”,采用了传统的Loop方法的逆过程,虽然在简化的时候借鉴了插值细分的处理方法,采用Loop的边点计算只生成边点,但是由于传统的Loop细分方法是逼近型的,生成的曲面不经过初始控制网格,这就不可避免细分后的极限曲面是收缩的。这种在保持网格形状特征上的收缩性,实用性并不是很好,增加了内存占用量,大大影响了网格生成和图形渲染速度。
技术实现思路
本专利技术所要解决的技术问题是传统Loop细分方法存在细分后的极限曲面是收缩和内存占用量大的问题,提供一种基于逆插值Loop的网格简化方法。为解决上述问题,本专利技术是通过以下技术方案实现的:基于逆插值Loop的网格简化方法,包括如下步骤:步骤1、对于给定的一个网格模型Mn,将网格模型Mn的所有顶点划分成2个集合,即将是奇点的顶点归入奇点集中,将是偶点的顶点归入偶点集;步骤2、为了三维曲面网格的还原与重建,在删除网格模型Mn的奇点集中的每一个奇点之前,通过插值Loop细分方法对该奇点在下一层网格模型Mn-1的位置进行预测,并保存该奇点在网格模型Mn中的实际位置与下一层网格模型Mn-1中的预测位置的偏移量off;步骤3、将奇点集中的奇点作为下一层网格模型Mn-1的冗余删除,并将偶点集中的偶点作为下一层网格模型Mn-1的顶点保留;对网格Mn-1重新进行三角化,形成新的拓扑信息,构成新的完整的网格模型Mn-1;步骤4、重复上述步骤1-3,直到将复杂的网格模型Mn简化到只剩下由偶点组成的网格模型M0,与此同时在简化的过程中生成一系列的偏移量off。上述步骤1中,对网格中的顶点进行划分的过程具体为:步骤1.1、将网格中任意一个奇异点设置为偶点,放置于偶点集中;步骤1.2、将与奇异点相邻的所有邻接点设置为奇点,放置于奇点集中;步骤1.3、将步骤1.2设置的奇点视为对称中心,与步骤1.1设置的偶点相对称的对称点设置为偶点,放置于偶点集中;步骤1.4、对偶点集中的偶点依次调用步骤1.1至步骤1.3划分规则进行划分,直到网格中的所有顶点全部划分完毕。与现有技术相比,本专利技术具有如下特点:1、相较于传统Loop,扩大了细分的模板,容纳更多的控制顶点,实现边缘的插值点对中心点的补偿,在进行简化时依次删除掉网格中的冗余信息,最终生成由一个初始网格和一系列所占空间更小的偏移量所组成的渐进网格。2、将插值Loop细分模式运用到逆插值Loop的网格简化上,即将逼近型的Loop细分同插值型细分进行融合;插值型的细分模式产生的极限曲面不会收缩,具有容易控制生成曲面外形的特点;将其逆用在简化网格上将极大减小内存占用量;3、运用插值型细分模式对网格进行逆插值型Loop简化处理;结合插值型Loop的特点,在进行逆插值Loop网格简化的过程中不必对上一层网格中偶点进行补偿计算,速度相对更快,在实际应用中更为有效;4、适用于具有细分连通性的三角形网格,对于任意网格需进行预处理使其成为具有细分连通性的三角形网格。附图说明图1为基于逆插值Loop的网格简化方法流程图;图2为顶点分类示意图;图3为插值Loop细分E顶点的掩膜;其中(a)表示正则点,(b)表示奇异点,(c)表示边界点;图4为奇点偏移计算过程;图(a)表示网格简化前原始网格Mj,图(b)表示简化之后的网格Mj-1,图(c)表示网格Mj-1通过插值Loop细分生成新的网格M*;图5为Loop和插值Loop偏移计算示意图。具体实施方式下面结合一个具体实施例和附图对本专利技术进一步详细说明。在进行详细说明之前,先对一些名词进行如下说明:正则点:在三角网格内部顶点中,与六条边相连的点。奇异点:在三角网格内部顶点中,非正则点的点。正则网格:所有顶点均为正则点的网格。半正则网格:存在奇异点的网格。奇点:在网格简化过程中需要删除的点,在半正则网格中为正则点。偶点:在网格简化过程中要保留下来的点,在半正则网格中为奇异点。假设一个三角网格M=(P,K),其中P表示该三角网格中顶点坐标集合,pi=(xi,yi,zi),(1≤i≤n),K表示该三角网格中的拓扑信息集合。将一个半正则的原始网格Mn=(Pn,Kn)经过数次网格简化之后,构成新的网格Mj=(Pj,Kj),(0≤j≤n),其中M0=(P0,K0)表示基网格。一种基于逆插值Loop的网格简化方法,如图1所示,包括如下步骤:步骤1、顶点划分算法:对于给定的一个三角网格Mj,将所有的顶点划分成两个集合,奇点集Oj和偶点集Ej(0≤j≤n)。由于封闭的三维网格都至少存在一个奇异点,而奇异点通常表示曲面的尖锐特征性,因此奇异点是需要保留下来的关键点,而其他点作为冗余信息删除。因此首先选择网格中的一个奇异点V设置为偶点,将它划分至偶点集Ej中,与它邻接的所有顶点Va设置为奇点,都划分至奇点集Oj中。然后找到V点关于Va的对称点Vs,将Vs也划分至偶点集Ej中。设置偶点是利用递归调用,依次这样划分下去,直到网格中所有顶点都划分完毕。顶点关系如图2所示,奇异点V为实心方块,邻接点Va为空心圆,对称点Vs为相应图中与奇异点V关于邻接点对称的实心方块。具体划分算法如下:找到任意奇异点V;{如果V包含在偶点集Ej中,返回成功;如果V包含在奇点集Oj中,返回失败;将V归并到偶点集Ej中,偶点集顶点数加一;遍历与V相邻的所有顶点Va;{如果Va是奇异点或者Va已经包含在偶点集Ej中,返回失败;否则将顶点Va归并到奇点集Oj中;找到与V点关于Va的对称点Vs;递归调用本算法对Vs点进行划分并返回;本文档来自技高网...

【技术保护点】
基于逆插值Loop的网格简化方法,其特征是,包括如下步骤:步骤1、对于给定的一个网格模型Mn,将网格模型Mn的所有顶点划分成2个集合,即将是奇点的顶点归入奇点集中,将是偶点的顶点归入偶点集;步骤2、为了三维曲面网格的还原与重建,在删除网格模型Mn的奇点集中的每一个奇点之前,通过插值Loop细分方法对该奇点在下一层网格模型Mn‑1的位置进行预测,并保存该奇点在网格模型Mn中的实际位置与下一层网格模型Mn‑1中的预测位置的偏移量off;步骤3、将奇点集中的奇点作为下一层网格模型Mn‑1的冗余删除,并将偶点集中的偶点作为下一层网格模型Mn‑1的顶点保留;对网格Mn‑1重新进行三角化,形成新的拓扑信息,构成新的完整的网格模型Mn‑1;步骤4、重复上述步骤1‑3,直到将复杂的网格模型Mn简化到只剩下由偶点组成的网格模型M0,同时在简化的过程中生成一系列的偏移量off。

【技术特征摘要】
1.基于逆插值Loop的网格简化方法,其特征是,包括如下步骤:步骤1、对于给定的一个网格模型Mn,将网格模型Mn的所有顶点划分成2个集合,即将是奇点的顶点归入奇点集中,将是偶点的顶点归入偶点集;步骤2、为了三维曲面网格的还原与重建,在删除网格模型Mn的奇点集中的每一个奇点之前,通过插值Loop细分方法对该奇点在下一层网格模型Mn-1的位置进行预测,并保存该奇点在网格模型Mn中的实际位置与下一层网格模型Mn-1中的预测位置的偏移量off;步骤3、将奇点集中的奇点作为下一层网格模型Mn-1的冗余删除,并将偶点集中的偶点作为下一层网格模型Mn-1的顶点保留;对网格Mn-1重新进行三角化,形成新的拓扑信息,构成新的完整的...

【专利技术属性】
技术研发人员:史卓安亚磊李映辉马洋洋玉珂
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:广西;45

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

1