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

文档序号:10697925阅读:434来源:国知局
基于逆插值Loop的网格简化方法
【专利摘要】本发明公开一种基于逆插值Loop的网格简化方法,包括顶点划分、偏移量计算、更新网格和循环操作等步骤,本发明将插值Loop细分模式运用到逆插值Loop的网格简化上,即将逼近型的Loop细分同插值型细分进行融合;插值型的细分模式产生的极限曲面不会收缩,具有容易控制生成曲面外形的特点;将其逆用在简化网格上将极大减小内存占用量;相较于传统Loop,扩大了细分的模板,容纳更多的控制顶点,实现边缘的插值点对中心点的补偿,在进行简化时依次删除掉网格中的冗余信息,最终生成由一个初始网格和一系列所占空间更小的偏移量所组成的渐进网格。
【专利说明】
基于逆插值Loop的网格简化方法
技术领域
[0001] 本发明设及几何体造型技术领域,具体设及一种基于逆插值Loop的网格简化方 法。
【背景技术】
[0002] 渐进网格(PMprogressive Meshes)是由Ho卵e在1996年的SIGGRAPH会上提出的 方法,用来解决大数据量的Ξ维网格受限于传输带宽与存储空间的问题。通常研究人员都 是采用基于二次误差测量(QEM,qua化ic error mehics)基础上的边折叠、点分裂方法或 者基于此方法的一系列改进方法来进行网格简化和生成多层次细节化〇D,Level of De化ils)的网格模型。
[0003] 近来也有许多采用细分的逆过程来简化网格方法,其中罗笑南等提出了逆蝶形细 分的方法,对图形进行网格简化并生成渐进网格;马建平等人则采用逆Loop细分进行了网 格简化操作。但他们的方法都有一些不足,例如郑贵峰在每一层网格简化时都需要对上一 层留下来的偶点进行补偿,同样重建的过程中也需要对同一点进行反补偿,运样操作就会 相对复杂。
[0004] 公告号为CN1975786A为的中国发明专利申请公开了 "一种基于逆Loop细分的渐进 网格生成方法",采用了传统的Loop方法的逆过程,虽然在简化的时候借鉴了插值细分的处 理方法,采用Loop的边点计算只生成边点,但是由于传统的Loop细分方法是逼近型的,生成 的曲面不经过初始控制网格,运就不可避免细分后的极限曲面是收缩的。运种在保持网格 形状特征上的收缩性,实用性并不是很好,增加了内存占用量,大大影响了网格生成和图形 擅染速度。

【发明内容】

[0005] 本发明所要解决的技术问题是传统Loop细分方法存在细分后的极限曲面是收缩 和内存占用量大的问题,提供一种基于逆插值Loop的网格简化方法。
[0006] 为解决上述问题,本发明是通过W下技术方案实现的:
[0007] 基于逆插值Loop的网格简化方法,包括如下步骤:
[000引步骤1、对于给定的一个网格模型r,将网格模型r的所有顶点划分成2个集合,即 将是奇点的顶点归入奇点集中,将是偶点的顶点归入偶点集;
[0009]步骤2、为了 Ξ维曲面网格的还原与重建,在删除网格模型r的奇点集中的每一个 奇点之前,通过插值Loop细分方法对该奇点在下一层网格模型MD-1的位置进行预测,并保存 该奇点在网格模型r中的实际位置与下一层网格模型iTi中的预测位置的偏移量off;
[0010]步骤3、将奇点集中的奇点作为下一层网格模型iTi的冗余删除,并将偶点集中的 偶点作为下一层网格模型MD-1的顶点保留;对网格MD-1重新进行Ξ角化,形成新的拓扑信息, 构成新的完整的网格模型MD-1;
[0011]步骤4、重复上述步骤1-3,直到将复杂的网格模型r简化到只剩下由偶点组成的 网格模型M^^与此同时在简化的过程中生成一系列的偏移量off。
[0012] 上述步骤1中,对网格中的顶点进行划分的过程具体为:
[0013] 步骤1.1、将网格中任意一个奇异点设置为偶点,放置于偶点集中;
[0014] 步骤1.2、将与奇异点相邻的所有邻接点设置为奇点,放置于奇点集中;
[0015] 步骤1.3、将步骤1.2设置的奇点视为对称中屯、,与步骤1.1设置的偶点相对称的对 称点设置为偶点,放置于偶点集中;
[0016] 步骤1.4、对偶点集中的偶点依次调用步骤1.1至步骤1.3划分规则进行划分,直到 网格中的所有顶点全部划分完毕。
[0017] 与现有技术相比,本发明具有如下特点:
[0018] 1、相较于传统Loop,扩大了细分的模板,容纳更多的控制顶点,实现边缘的插值点 对中屯、点的补偿,在进行简化时依次删除掉网格中的冗余信息,最终生成由一个初始网格 和一系列所占空间更小的偏移量所组成的渐进网格。
[0019] 2、将插值Loop细分模式运用到逆插值Loop的网格简化上,即将逼近型的Loop细分 同插值型细分进行融合;插值型的细分模式产生的极限曲面不会收缩,具有容易控制生成 曲面外形的特点;将其逆用在简化网格上将极大减小内存占用量;
[0020] 3、运用插值型细分模式对网格进行逆插值型Loop简化处理;结合插值型Loop的特 点,在进行逆插值Loop网格简化的过程中不必对上一层网格中偶点进行补偿计算,速度相 对更快,在实际应用中更为有效;
[0021] 4、适用于具有细分连通性的Ξ角形网格,对于任意网格需进行预处理使其成为具 有细分连通性的Ξ角形网格。
【附图说明】
[0022] 图1为基于逆插值Loop的网格简化方法流程图;
[0023] 图2为顶点分类示意图;
[0024] 图3为插值Loop细分E顶点的掩膜;其中(a)表示正则点,(b)表示奇异点,(C)表示 边界点;
[0025] 图4为奇点偏移计算过程;图(a)表示网格简化前原始网格图(b)表示简化之后 的网格M^i,图(C)表示网格MW通过插值Loop细分生成新的网格
[0026] 图5为Loop和插值Loop偏移计算示意图。
【具体实施方式】
[0027] 下面结合一个具体实施例和附图对本发明进一步详细说明。
[0028] 在进行详细说明之前,先对一些名词进行如下说明:
[0029] 正则点:在Ξ角网格内部顶点中,与六条边相连的点。
[0030] 奇异点:在Ξ角网格内部顶点中,非正则点的点。
[0031] 正则网格:所有顶点均为正则点的网格。
[0032] 半正则网格:存在奇异点的网格。
[0033] 奇点:在网格简化过程中需要删除的点,在半正则网格中为正则点。
[0034] 偶点:在网格简化过程中要保留下来的点,在半正则网格中为奇异点。
[0035] 假设一个Ξ角网格M=(P,K),其中P表示该Ξ角网格中顶点坐标集合,Pi=(xi,yi, Zi),(l《i《n),K表示该Ξ角网格中的拓扑信息集合。将一个半正则的原始网格r=(pn, Κη)经过数次网格简化之后,构成新的网格Mj = (Pj,K j),(0《j《η),其中护)表示基 网格。
[0036] -种基于逆插值Loop的网格简化方法,如图1所示,包括如下步骤:
[0037] 步骤1、顶点划分算法:对于给定的一个Ξ角网格将所有的顶点划分成两个集 合,奇点集Oj和偶点集Ej(0《j《n)。
[0038] 由于封闭的Ξ维网格都至少存在一个奇异点,而奇异点通常表示曲面的尖锐特征 性,因此奇异点是需要保留下来的关键点,而其他点作为冗余信息删除。因此首先选择网格 中的一个奇异点V设置为偶点,将它划分至偶点集Ej中,与它邻接的所有顶点Va设置为奇 点,都划分至奇点集化中。然后找到V点关于Va的对称点Vs,将Vs也划分至偶点集Ej中。设置 偶点是利用递归调用,依次运样划分下去,直到网格中所有顶点都划分完毕。顶点关系如图 2所示,奇异点V为实屯、方块,邻接点Va为空屯、圆,对称点Vs为相应图中与奇异点V关于邻接 点对称的实屯、方块。具体划分算法如下:
[0039] 找到任意奇异点V;
[0040] {如果V包含在偶点集&中,返回成功;
[0041] 如果V包含在奇点集化中,返回失败;
[0042] 将V归并到偶点集&中,偶点集顶点数加一;
[0043] 遍历与V相邻的所有顶点化;
[0044] {如果化是奇异点或者化已经包含在偶点集&中,返回失败;
[0045] 否则将顶点化归并到奇点集化中;
[0046] 找到与V点关于化的对称点Vs ;
[0047] 递归调用本算法对Vs点进行划分并返回;
[004引}
[0049]返回成功
[(K)加]}
[0051] 递归调用顶点划分算法,直到将网格中的所有顶点均划分到奇点集和偶点集中, 其中半正则Ξ角形网格可顺利进行顶点划分的前提条件,亦即可简化的次数由W下公式决 定:
[0052] Dis 化 nce(Vi,Vj) = 2k,l《i,j《s,k = l,2,3...
[0053] 其中^,¥^表示网格中任意两个奇异点,设3为网格中包含奇异点的个数,013*曰11〇6 (vi,yj)表示运两个奇异点间相连接边的个数,k-1的最小值即为该网格可进行简化的次数, 因此由1"^1<^最多可简化111111(1〇次。若^角网格1"不满足该公式,则需要对网格进行预处 理,重新网格化使其满足该公式。
[0054] 步骤2、偏移量计算:通过步骤1将网格中的顶点划分为奇点集化和偶点集Ej后,为 保持Ξ维网格在传输前后,即网格的简化和重建过程中能够保持相对不变性,将表示几何 特征的偶点集中所有顶点保留下来,将奇点集中所有的奇点作为冗余信息删除。在删除原 网格1^中奇点集中某个奇点^的实际位置前,通过插值1〇〇口细分方法对下一层网格1^的 奇点V"位置进行预测计算,将奇点y/的实际位置与预测计算所得预测奇点V"位置的差值作 为偏移量off保存下来。
[0055]如图4所示,(a)表示网格简化前原始网格M^(b)表示简化之后的网格MW,(c)表 示网格MW通过插值Loop细分生成新的网格从网格Μ呼奇化到网格Μ^,删除了奇点r,然 后对于1^进行插值细分得到^,通过((3)可^看到在网格1^中,每一个新生成的顶点¥",都 对应于原网格Mj中的一个奇点y/,即有如下关系式:
[0化6] 〇ff = v'-V"
[0057]推广到一般情况下可W有:
[0化引
[0059] 其中〇/隶示网格Μ坤奇点集中的第i个奇点,P化J)表示网格Μ哺过插值Loop计算 得到的预测奇点,〇///Li表示网格mW中即将删除的奇点的实际位置与通过插值Loop计算 得到的预测奇点位置的偏移量。
[0060] 其中插值Loop细分方法为:首先,扩大Loop细分的掩膜,容纳更多的控制顶点,实 现边缘插值点对中屯、点的补偿;然后,借鉴改进的蝶形细分对奇异点的处理方法,修改插值 Loop细分的奇异点规则,从而解决奇异点凹陷问题。图3为插值Loop细分E顶点的掩膜;其中 (a)表示正则点,(b)表示奇异点,(C)表示边界点。
[006。 已假设if为控制顶点,巧日为E顶点在新插值Loop细分k+1和k 次迭代后的位置。为V顶点在传统细分中k次迭代后的位置。为化 传统Loop细分中的k次迭代后的位移。APf是E顶点的位置与V顶点的位巧 的差分。
[0062]
[0063]当if为正则点时,新的插值Loop细分的时页点的掩膜计算公式如下:
[0071] 当 i = 3时 S〇 二是,& 二 & =-吉
[0072] 此时对奇异点处理方法与改进的蝶形细分的奇异点处理规则相同,运里i表示顶 点的度。
[0073] 基于逆插值Loop网格简化的步骤是在现有插值Loop网格细分的基础上进行了对 应的改进。由于网格简化的目的在于减少数据量而非使简化后的网格更光顺,因此可W删 除偶点补偿的操作,减少计算时间。同时采用本发明逆插值Loop和传统逆Loop的最主要区 别在于偏移量的计算方法上。
[0074] 图5为Loop和插值Loop偏移计算示意图。图5中r表示原网格Mj中的某一个奇点的 实际位置,V" >表示网格mW通过插值Loop细分得到的奇点的预测位置,V"/则表示网格mW 通过Loop细分得到的奇点的预测位置。由此可得:
[0075] 通过Loop计算得到的偏移量为:
[0076] 〇ffi〇〇p = V'-V"'
[0077] 通过插值Loop得到的偏移量为:
[007引 0 讯L00p = V'-V"
[0079] 步骤3、更新网格:通过上面两个步骤,奇点集中的点作为冗余信息删除之后,对剩 下的偶点集中的点构成网格MW中的顶点信息PW,对网格MW重新进行Ξ角化,形成新的拓 扑信息护1,构成新的完整的网格模型MW(pW,Kfi)。如图4所示从(a)简化到化)。
[0080] 步骤4、循环操作:重复上述Ξ个步骤,可W将复杂的初始网格模型r简化到简单 的网格模型1*^。此时就可^形成多分辨率的渐进网格形式,即从精网格1"到粗糖的网格1*^: [0081 ] 一Mn-1 一Mn-2 一…一
[0082] 在每一次简化过程中,都会产生一层偏移量信息,所^当从1叩奇化到1<^后,会生成 的偏移量信息共有η层,如表1所示:
[0083] 表 1
[0084]
[0085] 。
【主权项】
1. 基于逆插值Loop的网格简化方法,其特征是,包括如下步骤: 步骤1、对于给定的一个网格模型Mn,将网格模型Mn的所有顶点划分成2个集合,即将是 奇点的顶点归入奇点集中,将是偶点的顶点归入偶点集; 步骤2、为了三维曲面网格的还原与重建,在删除网格模型Mn的奇点集中的每一个奇点 之前,通过插值Loop细分方法对该奇点在下一层网格模型IT1的位置进行预测,并保存该奇 点在网格模型M n中的实际位置与下一层网格模型IT1中的预测位置的偏移量off; 步骤3、将奇点集中的奇点作为下一层网格模型IT1的冗余删除,并将偶点集中的偶点 作为下一层网格模型iT1的顶点保留;对网格IT1重新进行三角化,形成新的拓扑信息,构成 新的完整的网格模型iT 1; 步骤4、重复上述步骤1-3,直到将复杂的网格模型,简化到只剩下由偶点组成的网格模 型#,同时在简化的过程中生成一系列的偏移量off。2. 根据权利要求1所述的一种基于逆插值Loop的网格简化方法,其特征是,步骤1中,对 网格中的顶点进行划分的过程具体为: 步骤1.1、将网格中任意一个奇异点设置为偶点,放置于偶点集中; 步骤1.2、将与奇异点相邻的所有邻接点设置为奇点,放置于奇点集中; 步骤1.3、将步骤1.2设置的奇点视为对称中心,与步骤1.1设置的偶点相对称的对称点 设置为偶点,放置于偶点集中; 步骤1.4、对偶点集中的偶点依次调用步骤1.1至步骤1.3划分规则进行划分,直到网格 中的所有顶点全部划分完毕。
【文档编号】G06T17/20GK106067192SQ201610372689
【公开日】2016年11月2日
【申请日】2016年5月30日 公开号201610372689.X, CN 106067192 A, CN 106067192A, CN 201610372689, CN-A-106067192, CN106067192 A, CN106067192A, CN201610372689, CN201610372689.X
【发明人】史卓, 安亚磊, 李映辉, 马洋洋, 玉珂
【申请人】桂林电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1