法律状态公告日
法律状态信息
法律状态
2015-02-04
未缴年费专利权终止 IPC(主分类):G06T17/00 授权公告日:20090311 终止日期:20131211 申请日:20061211
专利权的终止
2009-03-11
授权
授权
2007-08-01
实质审查的生效
实质审查的生效
2007-06-06
公开
公开
技术领域
本发明属于几何体造型技术领域,特别是涉及一种基于三角形网格的曲面简化方法。
背景技术
三维图形的表示通常是对三角形网格进行渲染而得到的。在几何造型中,为了使所描述的三维图形具有较强真实感和光滑度,常常需要高度复杂和高度细节化的三角网格模型。曲面细分是一种非常成熟的生成几何造型的方法,所生成的网格是重新网格化的网格(Remesh),具有细分连通性的,并且易于网格编辑和网格分裂等操作。另一方面,随着三维扫描设备的普及,高密度任意拓扑网格数据的获取变得越来越容易。然而,这些网格数据并不具有细分连接性,需要对网格数据进行重新网格化。另外,即使网格的拓扑具有细分连接性,其网格的数据也不可能正好是某一细分模式的极值曲面,网格数据与细分曲面的差作为曲面细分数据保存,根据需要进行取舍处理。
重新网格化是任意拓扑网格多分辨率分析的重要一环。Matthias Eck最早引入细分方法重采样对任意网格进行多分辨率分析。此方法对原始网格M,选择一个适当的初始网格M0作为参数域对M进行参数化,然后对M0用细分进行重采样,得到具有细分连通性的新网格。Aaron Lee等人通过建立任意拓扑网格的多分辨率参数曲面(MAPS)给出了一种重新网格化的方法;Kobbelt等人提出了一种称为收缩包围(Shrink wrapping)的重新网格化方法,周海等提出了利用细分曲面重建网格的方法;李桂清等分析了带尖锐特性的细分曲面,给出了曲面拟合的方法。上述方法均能较好地生成具有细分连通性的Remesh。
Hoppe首先提出了渐进网格(Progressive Mesh)的概念,并用渐进网格把任意网格表示成高效、无损并具有连续分辨率的编码,同时给出了渐进网格有效的实施方法。罗笑南等提出了基于插值型逆蝶形细分的渐进网格生成算法,并渐进网格应用于移动环境下的图形传输和图形渲染,解决了移动设备上的三维图形显示问题,但是蝶形细分顶点的仿射组合相关2-邻域的顶点,且相关联的顶点数目较多,大大影响了渐进网格生成和图形渲染速度。
发明内容
本发明针对以上的不足,提出了一种基于逆Loop细分的渐进网格生成方法,首先将网格中的冗余信息分批删除;最后形成由一个基网格和一系列误差值组成的渐进网格。本发明适用于具有细分连通性的三角形网络,对于任意网格首先要做预处理。本算法将逼近型细分模式在逆细分过程中作为插值型细分模式处理,算法适用于插值型、逼近型等多种细分模式,文中以Loop逆细分为例对算法加以说明。另外,由于Loop细分模式的顶点仿射组合相关联的顶点数目少,使得网格简化和网格重建过程的运算速度相对较快,在实际应用中更为有效。
为了实现发明目的,采用的技术方案为:
在三角网格中,与六条边相连的顶点定义为正则点,所有顶点都是正则点的网格定义为正则网格,多数顶点为正则点的网格为半正则网格,通常在任意曲面的三角网格中均含有奇异点。
基于逆Loop细分的渐进网格生成方法的主要步骤包括:
1)网格分裂:将已有的三角网格的顶点分裂成奇点集ODDj和偶点集EVENj;
2)奇点预测:为了三维曲面造型的网格还原和重建,在删除奇点之前,对每个奇点,采用Loop细分预测其位置ODD′,将现有的各个奇点ODDj与预测值对应相减得到一组误差值ej;
3)网格更新:删除掉奇点集ODDj后,剩余的偶点集EVENj形成下一层的顶点Pj-1,更新这些顶点的连接信息组成新的三角形集Kj-1,生成了一个简化后的新网格;
4)循环上述步骤,直到最终网格不能分裂,生成基网格及一系列误差值。
所述步骤1)网格分裂的分裂规则为:
a、选网格上任意一个奇异点为偶点归为偶点集;
b、将与奇异点相邻的所有邻接点归为奇点集;
c、对这些奇点外围与本偶点对称位置的对称点设为偶点,归为偶点集;
d、递归调用偶点集中的偶点,首先将其相邻的所有邻接点归为奇点集,再将这些奇点外围与该偶点对称位置的对称点设为偶点,归为偶点集,直到网格中所有顶点分裂完毕。
所述步骤2)奇点预测过程中的误差值ej的计算方法为:
其中,j表示网格层数,i表示第j层网格的奇点数。
附图说明
图1为基于逆Loop细分的渐进网格生成方法流程图;
图2为半正则网格简化示意图;
图3为顶点关系示意图;
图4为预测与更新示意;
图5为头像模型渐进网格(顶点数/三角面数)示意图;
图6为e-Sphere模型渐进网格(顶点数/三角面数)示意图。
具体实施方式
下面结合附图对本方法进行进一步阐述。
如图1所示为基于逆Loop细分的渐进网格生成方法流程图。
设三角网格M=(P,K),其中P表示三角网格顶点坐标的集合,Pi=(xi,yi,zi)(1≤i≤n),K表示含有网格拓扑信息的所有三角形集合。
本算法的主要目标就是将原始网格Mn(Pn,Kn)生成为同构的Mj(Pj,Kj)(1≤j≤n),其中M0=(P0,K0)为基网格。
设初始曲面网格为Mn,经过一次简化后得到Mn-1,对于第j层网格为Mj,每次网格简化包括以下三个过程。
(1)网格分裂:将已有的三角网格的顶点分裂成奇点集ODDj和偶点集EVENj。由于三维图形网格都存在奇异点,而奇异点通常表示曲面的尖锐特性,需要全部保留下来。故在实施时首先选网格上任意一个奇异点为偶点v归为偶点集,然后将与奇异点相邻的所有邻接点va归为奇点集,对这些奇点外围与本偶点对称位置的对称点vs设为偶点,归为偶点集,各顶点位置的关系见图3所示。设置偶点是利用递归调用,直到网格中所有顶点分裂完毕,算法如下:
找任意奇异点v;
{如果v已经在偶点集中,返回成功;
如果v已经在奇点集中,返回失败;
设置v到偶点集SetEvenVertex(v);
对于v的每一个相邻点va
{如果va是奇异点或者va已经在偶点集中,返回失败;
设置va到奇点集SetOddVertex(va);
找到va和v的对称点vs;
设置vs到偶点集SetEvenVertex(vs);
}
返回成功
}
图2是半正则网格经过二次简化的示意。阴影三角形的顶点是各层网格的奇点ODD,其余点为偶点EVEN。所有的奇点是冗余的信息,可以删除,而保留所有的偶点,以达到网格的简化。观察图2(a)可以发现,奇点、偶点有规律地分布在三角网格中。图中阴影的三角形是由奇点组成的三角形,可以删除。
(2)奇点预测:为了三维曲面造型的网格还原和重建,在删除奇点之前,对每个奇点,采用Loop细分预测其位置ODD′,如图4所示。将现有的各个奇点ODDi与预测值对应相减得到一组误差值ej。
其中,j表示网格层数,i表示第j层网格的奇点数。图4(a)中O点为奇点,E点为偶点,图4(b)是删除O点前,用细分模式预测得到点O’,每个奇点O与其相应的预测点O’的差值即得到误差值ej集。
(3)网格更新:删除掉奇点集ODDj后,剩余的偶点集EVENj形成下一层的顶点Pj-1,更新这些顶点的连接信息组成新的三角形集Kj-1,生成了一个简化后的新网格Mj-1=(Pj-1,Kj-1)。图4(c)示意删除奇点后重建的网格。
重复上述三步,将复杂的初始网格数据Mn简化到网格M0。每一层次的网格简化,奇点的坐标并不需要改变。简化后的数据得到一个基网格和一系列误差集ej的数据,构成多个层次的数据:M0→e1→e2→...→en-2→e-1,生成了渐进网格,即(M0,e0)生成M1,(M1,e1)构成M2,...,(Mn-1,en-1)可还原Mn,渐进网格见表1。
表1由基网格和误差组成的渐进网格
如图5、图6所示为头像模型渐进网格(顶点数/三角面数)示意图和e-Sphere模型渐进网格(顶点数/三角面数)示意图,实验表明,本算法效率高,与以往的算法相比,速度快,更易于在实际应用中使用。
机译: 一种基于特征的分割方法,用于对批量制作和分组准备的重复文章的文化进行细分,该方法实现了该方法向机器喂食的能力
机译: 一种基于特征的分割方法,用于对批量制作和分组准备的重复物品的文化进行细分,该方法实现了该方法向机器喂食的能力
机译: 一种基于新型详细分类的非侵入性方法,用于评估肝纤维化的存在或严重性