一种义齿模型三角网格优化方法
【技术领域】
[0001] 本发明属于计算机图形处理技术领域,具体涉及一种义齿模型三角网格优化方 法。
【背景技术】
[0002] CAD/CAM技术在口腔修复中,为了获得患者口腔信息,采取的一种方法是逆向造型 的方法:将三维扫描仪的探测头伸入患者口腔进行扫描,这样可以得到一个与牙齿形状相 似的牙齿点云模型,这个点云模型为了尽可能准确地表示牙齿的形状,所以往往数量会非 常大,不能直接拿来使用。常见的处理手段是按照一定的比例直接删除部分点,使模型点变 得稀疏,但依然能够表示原始模型的形状。得到这个简化后的点云模型后,就可以建立拓扑 关系,转化成三角网格模型。三角网格模型表示的是原模型的形状,但是通过数据点得到的 三角网格模型不可避免地存在各种噪声和扰动,三角网格的质量会很差(存在大量狭长的 三角片),狭长三角面片十分不利于显示,会影响模型的整个形状,也会对后续的网格操作 产生不良影响。因而在得到简化的三角网格模型之后,有必要在满足几何精度要求的前提 下对网格进行优化。
[0003]目前,用于任意网格模型优化的主流算法有两大类:几何优化算法、拓扑优化算 法。几何优化算法,也叫做顶点平移算法,通过调整顶点的几何位置来提高网格的质量,但 并不改变网格的拓扑结构;拓扑优化算法则是通过修改网格的拓扑关系来优化网格的质 量,利用一组新的网格元素来替换原有的一组网格元素。
[0004] 拉普拉斯(Laplace)优化法是一种近年来得到广泛应用的快速、简单、有效的网 格优化算法:该算法对每个顶点定义一个拉普拉斯算子来确定一个调整方向,通过沿调整 方向以一定的速度移动顶点来调整网格。拉普拉斯优化法能够有效地调整所有的网格至规 则形状,网格密度和形状都趋于均匀。
[0005] Taubin提出了一种加权拉普拉斯优化算法,有效地抑制了网格噪声,也在一定程 度上控制了调整后模型的变形,但这种算法在原始模型平坦处却带来了新的扰动。
[0006] 基于几何优化的几种优化算法都需要对所有顶点重复调整操作,直至结果满足 要求。但随着迭代次数的增加,由于缺少精度控制,因此极易造成原始模型特征的退化丧 失,导致的过度优化网格。例如拉普拉斯优化,如果迭代次数过多就会导致原始模型的大 范围变形,模型呈现"内缩"的现象;Taubin优化的问题是在受到模型形状影响,原始模型 平坦处会带来新的扰动,就是说比较平滑的位置反而变得不平滑。
[0007] 拉普拉斯优化和基于拉普拉斯的Taubin优化,它们或受迭代次数限制,或受模型 形状限制;王崑凌提到折叠边或者是折叠三角形法,是删除边元素或者三角形元素的,网格 模型点数较大时比较适合,但是当网格比较稀疏的情况下,每一个网格元素的删除都会极 大地影响模型的形状。
【发明内容】
[0008] 本发明的目的是:找到一种网格优化的方法,它能保证原模型的形状不会有大的 变动,不会随迭代次数增加发生内缩的情况下,消除狭长三角形;并且优化过程不涉及元素 删除以保证优化效果不受顶点数或者网格疏密的限制。
[0009] 为实现上述方案,本发明提供了一种义齿模型三角网格优化方法,包括如下步 骤:
[0010] S1、导入模型:导入需要优化的三角网格模型,开启算法,模型读取采用的是 openmesh库的函数readmeshO,可以通过模型的地址方便地读取到该模型。
[0011] S2、获得偏移点:算法开始,选取步骤S1中的三角网格模型的起始点作为当前点 pil,先遍历该点的一环邻域点neibi,ie[0,n],n等于一环邻域点的个数,得到这些邻域 点的每一个点的坐标1,然后按如下方法求得当前点的偏移点pi2 : 1) 计算出当前点Pil到每一个邻域点的距离Q,ie[0,n],再求得平均距离L; L= (Χ0+Ι^+·· ·Ln)/n; 2) 得到平均距离L后,算出当前点相对于每个邻域点偏移的距离(h-L)/2; 3) 对所有的偏移向量山求和,得到总的偏移向量d,d=dc+dd. . . .dn; 4) 根据偏移向量d以及当前点的三维坐标pi1,计算出偏移点的坐标:pi2 =pi1+d。
[0012]S3、计算偏移点投影方向:为了控制模型形变,对偏移点向原模型进行一次投影。 这样一来,整个优化过程中,网格的每一个顶点都是严格地在本模型的表面进行平移,而不 会沿面的法向量向内或者向外偏置,优化网格质量的同时不会产生大的形变。
[0013] 计算偏移点pi2的投影方向很难,因为pi2只是利用偏移向量得到的一个点,与原 模型没有拓扑关系,所以这个投影方向实际是用pil点的法矢来表示的。
[0014] pil是模型上的顶点,求其法矢常见的方法是:利用三角网格的拓扑结构,通过与 被估算点相邻的三角片的法向矢量的加权平均来计算该点的法向矢量,方法如下: a) 计算一维邻域三角片fk(k= 1,…,η,η为邻域三角片的数量)的单位法矢nfk:
其中,'、'、vk为三角片fk的三个顶点,ei.j为顶点v.j指向顶点v;的边矢量,eik为顶 点vk指向顶点vi的边矢量; b) 计算三角片fk的面积Sfk:
c) 利用三角片面积加权法求出顶点Vl的法矢η1:
[0015]S4、求投影点,计算距离Λ:偏移点和其投影的方向可以构成一条射线,算出射线 与平面的交点,方法如下:遍历前点的一环邻域面,射线与这些面求交点,不相交回馈"否", 相交就返回交点坐标投影点Pi3;求出投影点pi3到当前点pil的距离Λ;
[0016] S5、求出所有顶点的Λ,从大到小排序:取下一个顶点作为当前点,重复步S2~ S4;直到所有顶点都得到投影点以及Λ值,按Λ从大到小进行排列;
[0017] S6、顶点的平移及冻结:将当前点pil移动到投影点pi3的位置,当前点pil平移 之后将当前点pi1以及当前点的一环邻域点neibi冻结起来;
[0018] 顶点冻结的方法如下:先对所有顶点设置冻结和非冻结两种属性,设定冻结用0 表示,非冻结用1表示,并初始化为非冻结状态1 ;每次平移之后就将该点及其邻域点属性 设为〇,在操作下一个点之前首先判断其属性值,若为〇,就说明该点被冻结,不能移动直接 跳到后面的点,若为1则可以操作;
[0019] S7、依次平移所有点:不断的重复步骤S6,直到所有顶点都被移动或者冻结,完成 一次网格优化。
[0020] 本发明相较于现有技术的有益效果在于: 1) 本发明提供的义齿模型三角网格优化方法能够在保证原模型的形状不会有大的变 动,不会随迭代次数增加发生内缩的情况下,消除狭长三角形; 2) 本发明提供的义齿模型三角网格优化方法的优化过程不涉及元素删除以保证优化 效果不受顶点数或者网格疏密的限制; 3) 本发明提供的义齿模型三角网格优化方法不涉及点、边、面的增加或删除,不改变拓 扑结构,仅在阀值范围内对每个顶点进行移动,就能达到良好的网格优化效果。
【附图说明】
[0021] 图1是本发明的优化步骤流程图。
【具体实施方式】
[0022] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本领 域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明的保护 范围。
[0023] 实施例:一种义齿模型三角网格优化方法。
[0024] 本实施例是本发明方法在口腔修复技术中修复牙齿扫描模型的应用,参照图1所 示,一种义齿模型三角网格优化方法,包括如下步骤:
[0025]S1、导入模型