一种用于口腔修复的义齿桥融合方法转让专利

申请号 : CN201610634729.3

文献号 : CN107684466B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王煜马季仁夏鸿建马杰林泽锋

申请人 : 佛山市诺威科技有限公司

摘要 :

本发明公开了一种用于口腔修复的义齿桥融合方法,包括步骤:S1、基于包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的包围盒;S2、分别对该相邻两个模型的包围盒进行遍历后,求解获得两个模型的包围盒相交部分,进而计算该两个模型之间的交线,最后根据交线对该两个模型进行区域划分;S3、计算筛选出该两个模型所划分的区域中的多余区域,并将其删除;S4、对进行区域删除后的该两个模型进行边界匹配缝合后,进行光顺处理。本方法可以计算量少,算法简单,便于实行,具有较好的融合效果,可广泛应用于义齿修复行业中。

权利要求 :

1.一种用于口腔修复的义齿桥融合方法,其特征在于,包括步骤:S1、基于包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的包围盒;

S2、分别对该相邻两个模型的包围盒进行遍历后,求解获得两个模型的包围盒相交部分,进而计算该两个模型之间的交线,最后根据交线对该两个模型进行区域划分;

S3、计算筛选出该两个模型所划分的区域中的多余区域,并将其删除;

S4、对进行区域删除后的该两个模型进行边界匹配缝合后,进行光顺处理;

所述步骤S2,包括S21、采用递归算法,分别对相邻两个模型的包围盒进行遍历,依次获取该两个模型的子包围盒;S22、针对获取的两个包围盒相交的情况,判断该两个子包围盒是否都为叶节点,若是,则对该两个子包围盒所包含的三角面片进行检测,求解获得相交的三角面片及交点,反之,对应执行步骤S23或S24;

S23、针对该两个子包围盒中只有一个为叶节点的情况,将该叶节点分别与非叶节点的左右子节点进行相交检测,求解获得相交的三角面片及交点;S24、针对该两个子包围盒均不是叶节点的情况,将两者的左右子节点进行两两相交检测,求解获得相交的三角面片及交点;

S25、迭代执行步骤S21~S24直到遍历结束后,将求解获得的交点连接形成各模型之间的交线;

S26、针对每个封闭交线,将其所在的每个模型划分为两个区域;

所述步骤S3,包括S31、计算该两个模型的中心点后连成轴线,同时分别计算该两个模型被交线所划分的各个区域的中心点;

S32、将各中心点投影到轴线上;S33 、对各中心点在轴线上的投影点进行排序后,筛选出投影点最大值所对应的区域作为牙齿模型或固位体模型的多余区域,筛选出投影点最小值所对应的区域作为连接体模型的多余区域;S34 、删除多余区域。

2.根据权利要求1所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S1,具体为:基于AABB树包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的AABB树包围盒。

3.根据权利要求2所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S1,包括:S11、获取预设的AABB树的最大深度以及每个叶节点包含的三角面片的最大数量;

S12、针对义齿桥融合体的任一模型,将整个模型的三角网络作为最大的AABB树包围盒并将其作为AABB树的根节点,并从该根节点开始遍历;

S13、判断当前所遍历的节点是否为叶节点,若是,则创建对应的叶节点信息后结束,反之,执行步骤S14;

S14、将当前节点从包围盒的最长边处分为左右两个子包围盒,并将该左右两个子包围盒作为当前节点的左右子节点后,返回步骤S13进行遍历。

4.根据权利要求3所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S13中所述判断当前所遍历的节点是否为叶节点的步骤,其具体为:判断当前所遍历的节点的深度是否大于预设的最大深度,或者当前所遍历的节点所包含的三角面片数量是否小于预设的最大数量,若是,则表示该节点为叶节点。

5.根据权利要求1所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S4,包括:S41、分别获取进行区域删除后的该两个模型的边界点集;

S42、将两个边界点集之中边界点数量较少的作为边界匹配的基准边界,另一个边界点集作为匹配边界;

S43、采用距离匹配法对基准边界和匹配边界进行边界匹配,获得基准边界的每个点在匹配边界中对应的匹配点;

S44、根据边界匹配结果对基准边界和匹配边界进行缝合;

S45、对缝合后的边界进行光顺处理。

6.根据权利要求5所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S43,包括:S431、 顺序连接基准边界和匹配边界中的各点,并计算形成的边长的总长度;

S432、依次计算出基准边界和匹配边界中各个点到起始点的边长长度占总长度的比率;

S433、针对基准边界的每个点对应的比率,在匹配边界中查找与其比率最接近的点作为其在匹配边界中的匹配点。

7.根据权利要求5所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S44,其具体为:将基准边界的每个点与其在匹配边界中的对应匹配点进行连接,同时,计算获得匹配边界中除匹配点之外的每个点在基准边界上的对应点后,将每个点与其对应点进行连接。

8.根据权利要求5所述的一种用于口腔修复的义齿桥融合方法,其特征在于,所述步骤S44 包括:S441、依次遍历获取基准边界的每个点及其在匹配边界中的对应匹配点;

S442、判断基准边界的当前点的匹配点及下一个点的匹配点是否相同,若是,则将当前点、下一个点及它们的匹配点连接形成一三角形后继续遍历,反之执行步骤S443;

S443、将当前点和下一个点对应的两个匹配点在匹配边界上向中间收敛为新的匹配点,并判断该两个新的匹配点是否为同一点,若是,则将当前点、下一个点和该收敛点连接形成一三角形后继续遍历,反之执行步骤S444;

S444、则将当前点、下一个点和该两个收敛点连接形成两个三角形;

S445、迭代执行步骤S441~S444直到遍历结束。

说明书 :

一种用于口腔修复的义齿桥融合方法

技术领域

[0001] 本发明涉及义齿修复领域,特别是涉及一种用于口腔修复的义齿桥融合方法。

背景技术

[0002] 结合图1给出以下几个术语解释:
[0003] 桥体:一种专门用来修复牙列缺损的修复体,也就是人工牙,是恢复缺失牙的形态和功能的部分,桥体应该与缺失牙外形相似,不刺激牙龈组织,并具有足够的强度,作用是用于替代缺失的牙齿。
[0004] 固位体:一种固定位置的装置。通过连接体的连接功能,固位体和桥体融合成一个整体,使得固位体发挥固位作用,将桥体固定在牙齿缺失部位。
[0005] 连接体:一种能够连接左右相邻牙齿的连接装置。固位体要固定住桥体,单靠自身不能做到,需要通过连接体来把桥体和固位体融合在一起,连接体的作用是将桥体和固位体连接起来。连接体必须具有足够的强度,以保证在承受较大的咬合力时不会发生断裂。
[0006] 义齿桥融合体:桥体、固位体、连接体两两相连形成的一个整体。
[0007] 牙体缺损是口腔科的常见病和多发病,而传统的缺牙修复技术周期很长,而且由于很大程度上是手工制作,常常出现制造的修复体与患者不匹配而造成疼痛甚至发炎。现代牙齿修复领域通过引进CAD/CAM技术,利用CAD/CAM技术高效率、高精度、加工方便的特点大幅提高修复体设计、制作的效率,明显缩短治疗周期,充分保证修复体的精度。在口腔临床修复中,当一颗或相邻多颗牙齿完全缺失时,无法在缺牙部位进行预备,需要用义齿桥进行修复。义齿桥一般由3个部分组成:固位体、桥体和连接体,固位体位于桥体两侧,起固定作用;桥体就是人工牙,用来代替缺牙;连接体是固位体和桥体的中间部位。义齿桥修复的目的是要得到一个融合在一起的模型,而仅仅将固位体、连接体、桥体摆放在一起是不够的,虽然连接体两端分别和固位体、桥体是相接触的,但是模型依旧是独立的。于是,需要一种将这几个模型缝合在一起的方法,而在这之前需要解决的一个关键问题是,如何删除模型相交区域实现义齿桥的融合,由于模型相交不可预计,有时候会出现很复杂的相交情况,比如两个模型相交却得到多个相交区域,那就需要先从多个区域中选择出多余的区域,再进行删除,从而实现义齿桥融合。
[0008] 目前的义齿桥融合的一种方式是在左右邻牙上找到两个边界环,在两条边界之间构造脊线,脊线均匀离散化,再通过网格剖分得到连接体曲面,最后连接体曲面的两端分别与对应的牙齿模型缝合在一起,得到义齿桥融合体。这种融合方式的难点在于如何提取合适的边界线和脊线:插值得到的曲面直接作为连接体的表面,这就意味着边界线形状决定连接体截面形状,脊线决定连接体轴向延伸,因此这种方式对边界线和脊线的构造要很高,其计算难度较大,而且难以获得理想结果。而目前另一种义齿桥融合的方式是采用类似于“膨胀、切割”的方法,利用增大固位体形态,使其与桥体相交来得到桥体,向桥体方向扩大固位体与桥体相接处的近中、远中面,增加固位体近远中方向的尺寸,使得固位体外表面与桥体外表面相交后,删除彼此被包含在内的区域,再在边界处将两个模型缝合起来,形成义齿桥融合体,这种方式融合过程复杂,而且需要改变牙齿的形态,本身存在较大的误差,融合效果也较差。总的来说,目前的义齿桥融合方法较为复杂,计算难度大,融合效果差,难以满足义齿修复领域的需求。

发明内容

[0009] 为了解决上述的技术问题,本发明的目的是提供一种用于口腔修复的义齿桥融合方法。
[0010] 本发明解决其技术问题所采用的技术方案是:
[0011] 一种用于口腔修复的义齿桥融合方法,包括步骤:
[0012] S1、基于包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的包围盒;
[0013] S2、分别对该相邻两个模型的包围盒进行遍历后,求解获得两个模型的包围盒相交部分,进而计算该两个模型之间的交线,最后根据交线对该两个模型进行区域划分;
[0014] S3、计算筛选出该两个模型所划分的区域中的多余区域,并将其删除;
[0015] S4、对进行区域删除后的该两个模型进行边界匹配缝合后,进行光顺处理。
[0016] 进一步,所述步骤S1,具体为:
[0017] 基于AABB树包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的AABB树包围盒。
[0018] 进一步,所述步骤S1,包括:
[0019] S11、获取预设的AABB树的最大深度以及每个叶节点包含的三角面片的最大数量;
[0020] S12、针对义齿桥融合体的任一模型,将整个模型的三角网络作为最大的AABB树包围盒并将其作为AABB树的根节点,并从该根节点开始遍历;
[0021] S13、判断当前所遍历的节点是否为叶节点,若是,则创建对应的叶节点信息后结束,反之,执行步骤S14;
[0022] S14、将当前节点从包围盒的最长边处分为左右两个子包围盒,并将该左右两个子包围盒作为当前节点的左右子节点后,返回步骤S13进行遍历。
[0023] 进一步,所述步骤S13中所述判断当前所遍历的节点是否为叶节点的步骤,其具体为:
[0024] 判断当前所遍历的节点的深度是否大于预设的最大深度,或者当前所遍历的节点所包含的三角面片数量是否小于预设的最大数量,若是,则表示该节点为叶节点。
[0025] 进一步,所述步骤S2,包括:
[0026] S21、采用递归算法,分别对相邻两个模型的包围盒进行遍历,依次获取该两个模型的子包围盒;
[0027] S22、针对获取的两个包围盒相交的情况,判断该两个子包围盒是否都为叶节点,若是,则对该两个子包围盒所包含的三角面片进行检测,求解获得相交的三角面片及交点,反之,对应执行步骤S23或S24;
[0028] S23、针对该两个子包围盒中只有一个为叶节点的情况,将该叶节点分别与非叶节点的左右子节点进行相交检测,求解获得相交的三角面片及交点;
[0029] S24、针对该两个子包围盒均不是叶节点的情况,将两者的左右子节点进行两两相交检测,求解获得相交的三角面片及交点;
[0030] S25、迭代执行步骤S21 S24直到遍历结束后,将求解获得的交点连接形成各模型~之间的交线;
[0031] S26、针对每个封闭交线,将其所在的每个模型划分为两个区域。
[0032] 进一步,所述步骤S3,包括:
[0033] S31、计算该两个模型的中心点后连成轴线,同时分别计算该两个模型被交线所划分的各个区域的中心点;
[0034] S32、将各中心点投影到轴线上;
[0035] S33 、对各中心点在轴线上的投影点进行排序后,筛选出投影点最大值所对应的区域作为牙齿模型或固位体模型的多余区域,筛选出投影点最小值所对应的区域作为连接体模型的多余区域;
[0036] S34 、删除多余区域。
[0037] 进一步,所述步骤S4,包括:
[0038] S41、分别获取进行区域删除后的该两个模型的边界点集;
[0039] S42、将两个边界点集之中边界点数量较少的作为边界匹配的基准边界,另一个边界点集作为匹配边界;
[0040] S43、采用距离匹配法对基准边界和匹配边界进行边界匹配,获得基准边界的每个点在匹配边界中对应的匹配点;
[0041] S44、根据边界匹配结果对基准边界和匹配边界进行缝合;
[0042] S45、对缝合后的边界进行光顺处理。
[0043] 进一步,所述步骤S43,包括:
[0044] S431、 顺序连接基准边界和匹配边界中的各点,并计算形成的边长的总长度;
[0045] S432、依次计算出基准边界和匹配边界中各个点到起始点的边长长度占总长度的比率;
[0046] S433、针对基准边界的每个点对应的比率,在匹配边界中查找与其比率最接近的点作为其在匹配边界中的匹配点。
[0047] 进一步,所述步骤S44,其具体为:
[0048] 将基准边界的每个点与其在匹配边界中的对应匹配点进行连接,同时,计算获得匹配边界中除匹配点之外的每个点在基准边界上的对应点后,将每个点与其对应点进行连接。
[0049] 进一步,所述步骤S44,包括:
[0050] S441、依次遍历获取基准边界的每个点及其在匹配边界中的对应匹配点;
[0051] S442、判断基准边界的当前点的匹配点及下一个点的匹配点是否相同,若是,则将当前点、下一个点及它们的匹配点连接形成一三角形后继续遍历,反之执行步骤S443;
[0052] S443、将当前点和下一个点对应的两个匹配点在匹配边界上向中间收敛为新的匹配点,并判断该两个新的匹配点是否为同一点,若是,则将当前点、下一个点和该收敛点连接形成一三角形后继续遍历,反之执行步骤S444;
[0053] S444、则将当前点、下一个点和该两个收敛点连接形成两个三角形;
[0054] S445、迭代执行步骤S441 S444直到遍历结束。~
[0055] 本发明的有益效果是:本发明的一种用于口腔修复的义齿桥融合方法,包括步骤:S1、基于包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的包围盒;S2、分别对该相邻两个模型的包围盒进行遍历后,求解获得两个模型的包围盒相交部分,进而计算该两个模型之间的交线,最后根据交线对该两个模型进行区域划分;S3、计算筛选出该两个模型所划分的区域中的多余区域,并将其删除;S4、对进行区域删除后的该两个模型进行边界匹配缝合后,进行光顺处理。本方法可以计算量少,算法简单,便于实行,具有较好的融合效果。

附图说明

[0056] 下面结合附图和实施例对本发明作进一步说明。
[0057] 图1是义齿桥融合体的结构示意图;
[0058] 图2是本发明的一种用于口腔修复的义齿桥融合方法的流程图;
[0059] 图3是本发明实施例二中所采用的AABB树结构的示意图;
[0060] 图4是本发明实施例二中对包围盒进行相交检测的流程示意图;
[0061] 图5是本发明实施例二中牙齿模型与连接体模型相交在一起的示意图;
[0062] 图6是本发明实施例二中对图5的牙齿模型进行区域划分的外观示意图;
[0063] 图7是本发明实施例二中对一牙齿模型进行区域划分后的剖面结构示意图;
[0064] 图8是本发明实施例二中进行区域删除所需满足的效果示意图;
[0065] 图9是本发明实施例二中对义齿桥融合体进行相交区域删除操作之后剩下的模型表面示意图;
[0066] 图10是本发明实施例二中对两边界进行边界匹配后的匹配结果示意图;
[0067] 图11是本发明实施例二中对两边界进行边界缝合后的缝合结果示意图;
[0068] 图12是本发明实施例二中对两模型进行边界缝合光顺后的效果示意图。

具体实施方式

[0069] 本发明实施例一
[0070] 参照图2,本发明提供了一种用于口腔修复的义齿桥融合方法,包括步骤:
[0071] S1、基于包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的包围盒;这里的包围盒算法可以采用AABB树包围盒算法、OBB树包围盒算法等;
[0072] S2、分别对该相邻两个模型的包围盒进行遍历后,求解获得两个模型的包围盒相交部分,进而计算该两个模型之间的交线,最后根据交线对该两个模型进行区域划分;
[0073] S3、计算筛选出该两个模型所划分的区域中的多余区域,并将其删除;
[0074] S4、对进行区域删除后的该两个模型进行边界匹配缝合后,进行光顺处理。
[0075] 如图1中所示,义齿桥融合体的相邻两个模型可以是固位体模型与连接体模型,也可以是连接体模型与牙齿模型,牙齿模型也即背景技术中的桥体模型。
[0076] 进一步作为优选的实施方式,所述步骤S1,具体为:
[0077] 基于AABB树包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的AABB树包围盒。
[0078] 进一步作为优选的实施方式,所述步骤S1,包括:
[0079] S11、获取预设的AABB树的最大深度以及每个叶节点包含的三角面片的最大数量;
[0080] S12、针对义齿桥融合体的任一模型,将整个模型的三角网络作为最大的AABB树包围盒并将其作为AABB树的根节点,并从该根节点开始遍历;
[0081] S13、判断当前所遍历的节点是否为叶节点,若是,则创建对应的叶节点信息后结束,反之,执行步骤S14;
[0082] S14、将当前节点从包围盒的最长边处分为左右两个子包围盒,并将该左右两个子包围盒作为当前节点的左右子节点后,返回步骤S13进行遍历。
[0083] 进一步作为优选的实施方式,所述步骤S13中所述判断当前所遍历的节点是否为叶节点的步骤,其具体为:
[0084] 判断当前所遍历的节点的深度是否大于预设的最大深度,或者当前所遍历的节点所包含的三角面片数量是否小于预设的最大数量,若是,则表示该节点为叶节点。
[0085] 进一步作为优选的实施方式,所述步骤S2,包括:
[0086] S21、采用递归算法,分别对相邻两个模型的包围盒进行遍历,依次获取该两个模型的子包围盒;
[0087] S22、针对获取的两个包围盒相交的情况,判断该两个子包围盒是否都为叶节点,若是,则对该两个子包围盒所包含的三角面片进行检测,求解获得相交的三角面片及交点,反之,对应执行步骤S23或S24;
[0088] S23、针对该两个子包围盒中只有一个为叶节点的情况,将该叶节点分别与非叶节点的左右子节点进行相交检测,求解获得相交的三角面片及交点;
[0089] S24、针对该两个子包围盒均不是叶节点的情况,将两者的左右子节点进行两两相交检测,求解获得相交的三角面片及交点;
[0090] S25、迭代执行步骤S21 S24直到遍历结束后,将求解获得的交点连接形成各模型~之间的交线;
[0091] S26、针对每个封闭交线,将其所在的每个模型划分为两个区域。
[0092] 进一步作为优选的实施方式,所述步骤S3,包括:
[0093] S31、计算该两个模型的中心点后连成轴线,同时分别计算该两个模型被交线所划分的各个区域的中心点;
[0094] S32、将各中心点投影到轴线上;
[0095] S33 、对各中心点在轴线上的投影点进行排序后,筛选出投影点最大值所对应的区域作为牙齿模型或固位体模型的多余区域,筛选出投影点最小值所对应的区域作为连接体模型的多余区域;
[0096] S34 、删除多余区域。
[0097] 进一步作为优选的实施方式,所述步骤S4,包括:
[0098] S41、分别获取进行区域删除后的该两个模型的边界点集;
[0099] S42、将两个边界点集之中边界点数量较少的作为边界匹配的基准边界,另一个边界点集作为匹配边界;
[0100] S43、采用距离匹配法对基准边界和匹配边界进行边界匹配,获得基准边界的每个点在匹配边界中对应的匹配点;
[0101] S44、根据边界匹配结果对基准边界和匹配边界进行缝合;
[0102] S45、对缝合后的边界进行光顺处理。
[0103] 进一步作为优选的实施方式,所述步骤S43,包括:
[0104] S431、 顺序连接基准边界和匹配边界中的各点,并计算形成的边长的总长度;
[0105] S432、依次计算出基准边界和匹配边界中各个点到起始点的边长长度占总长度的比率;
[0106] S433、针对基准边界的每个点对应的比率,在匹配边界中查找与其比率最接近的点作为其在匹配边界中的匹配点。
[0107] 进一步作为优选的实施方式,所述步骤S44,其具体为:
[0108] 将基准边界的每个点与其在匹配边界中的对应匹配点进行连接,同时,计算获得匹配边界中除匹配点之外的每个点在基准边界上的对应点后,将每个点与其对应点进行连接。
[0109] 进一步作为优选的实施方式,所述步骤S44,包括:
[0110] S441、依次遍历获取基准边界的每个点及其在匹配边界中的对应匹配点;
[0111] S442、判断基准边界的当前点的匹配点及下一个点的匹配点是否相同,若是,则将当前点、下一个点及它们的匹配点连接形成一三角形后继续遍历,反之执行步骤S443;
[0112] S443、将当前点和下一个点对应的两个匹配点在匹配边界上向中间收敛为新的匹配点,并判断该两个新的匹配点是否为同一点,若是,则将当前点、下一个点和该收敛点连接形成一三角形后继续遍历,反之执行步骤S444;
[0113] S444、则将当前点、下一个点和该两个收敛点连接形成两个三角形;
[0114] S445、迭代执行步骤S441 S444直到遍历结束。~
[0115] 本发明实施例二
[0116] 本实施例是实施例一的一具体实例,本实施例以牙齿模型和连接体模型为例,详细说明如何进行融合,具体包括以下步骤:
[0117] 步骤1、基于AABB树包围盒算法,分别建立义齿桥融合体的相邻两个模型所对应的AABB树包围盒。
[0118] 由于义齿桥融合体牙齿模型、固位体模型和连接体模型都是由一个个三角面片构成,三角面片数量非常多,以三角面片为单位进行相交检测效率非常低。为了提高检测效率,采取的比较可靠方案是:模型先构建AABB树,再进行相交检测,AABB树以包围盒的形式对模型进行划分,相交检测时先以包围盒为单位进行检测,如果包围盒有相交,再对包围盒内的三角面片进行相交检测,这样效率会很高。
[0119] 对于网格模型来说,由于其巨大的数据量,因此需要对每个模型进行层次建模,以减小计算量。AABB包围盒是一个包含模型,且边平行于坐标轴的最小六面体。AABB树结构可以用图3表示,建立后,AABB树的每个节点都是包围盒,即每个包围盒也是AABB树上的节点。建立包围盒树的过程即遍历模型中的面,并将每个面分配到树的叶节点上的过程,本实施例使用递归算法建立AABB包围盒树,其过程包括以下步骤:
[0120] S11、获取预设的AABB树的最大深度以及每个叶节点包含的三角面片的最大数量;
[0121] S12、针对义齿桥融合体的任一模型,将整个模型的三角网络作为最大的AABB树包围盒并将其作为AABB树的根节点,并从该根节点开始遍历;
[0122] S13、判断当前所遍历的节点是否为叶节点,若是,则创建对应的叶节点信息后结束,反之,执行步骤S14;判断当前所遍历的节点是否为叶节点的步骤,具体为:判断当前所遍历的节点的深度是否大于预设的最大深度,或者当前所遍历的节点所包含的三角面片数量是否小于预设的最大数量,若是,则表示该节点为叶节点。
[0123] S14、将当前节点从包围盒的最长边处分为左右两个子包围盒,并将该左右两个子包围盒作为当前节点的左右子节点后,返回步骤S13进行遍历。
[0124] 最后,由于下面的步骤需要进行实时碰撞检测,因此在创建树的过程中,需要根据每个节点的AABB包围盒,建立球包围盒,具体做法是将AABB包围盒的中心作为球心,将AABB包围盒的对角线作为球直径。
[0125] 步骤2、分别对该相邻两个模型的包围盒进行遍历后,求解获得两个模型的包围盒相交部分,进而计算该两个模型之间的交线,最后根据交线对该两个模型进行区域划分,具体包括S21 S26:~
[0126] S21、采用递归算法,分别对相邻两个模型的包围盒进行遍历,依次获取该两个模型的子包围盒;
[0127] S22、针对获取的两个包围盒相交的情况,判断该两个子包围盒是否都为叶节点,若是,则对该两个子包围盒所包含的三角面片进行检测,求解获得相交的三角面片及交点,反之,对应执行步骤S23或S24;
[0128] S23、针对该两个子包围盒中只有一个为叶节点的情况,将该叶节点分别与非叶节点的左右子节点进行相交检测,求解获得相交的三角面片及交点;
[0129] S24、针对该两个子包围盒均不是叶节点的情况,将两者的左右子节点进行两两相交检测,求解获得相交的三角面片及交点;
[0130] S25、迭代执行步骤S21 S24直到遍历结束后,将求解获得的交点连接形成各模型~之间的交线;
[0131] S26、针对每个封闭交线,将其所在的每个模型划分为两个区域。
[0132] 详细的,如图4所示,本步骤从AABB树的根节点开始逐层地进行检测,针对不同模型的两节点node1,node2的包围盒Box1,Box2,我们可以做出如下判断:
[0133] 步骤a、若Box1和Box2相交,则表明节点node1和node2可能包含相交的三角形面片,这时需要进行继续相交检测,执行步骤b,否则表明节点node1和node2不包含相交三角形面片,则可结束检测。这里使用球包围盒进行判断,其判断依据为两球心距离d与半径和r关系,若d>r则不相交,若d
[0134] 步骤b、判断node1和node2是否都为叶节点,若是(形成1对,即node1-node2),则需对其包含的三角形面片进行精确检测,以求出相交的面及交点。否则,执行步骤c。
[0135] 步骤c、判断node1是否为叶节点,若是,则node2不是叶节点,则将node1分别与node2的左右子节点进行检测(形成2对,即node1-node2左,node1-node2右),求出相交三角面片及交点。否则,执行步骤d。
[0136] 步骤d、判断node2是否为叶节点,若是,则node1不是叶节点,则将node2分别与node1的左右子节点进行检测(形成2对,即node1左-node2,node1右-node2),求出相交三角面片及交点。否则,执行步骤e。
[0137] 步骤e、由于node1和node2均不是叶节点,需要将node1的左右节点和node2的右右节点进行两两检测(形成4对,即node1左-node2左,node1左-node2右,node1右-node2左,node1右-node2右)得到相交三角面片及交点。
[0138] 相交检测之后可以得到一系列的交点,将这些点连接在一起就构成交线,根据两个模型相交情况的复杂性,交线可能会有多条。
[0139] 划分相交区域的一般过程为将交线点添加到网格中,并与原网格建立拓扑关系;根据每条封闭交线可以将模型划分为两部分。附图5中表示牙齿模型与连接体相交在一起,图6表示对该牙齿模型的区域划分。图6中牙齿模型的黑色、灰色颜色表示不同的区域,即牙齿模型在与连接体相交的过程中被分割成2个区域。
[0140] 步骤3、计算筛选出该两个模型所划分的区域中的多余区域,并将其删除。
[0141] 模型被分割成不同的区域后,下一步就是要删除其中的某一块或者几块区域,要能定向删除那些区域就需要有算法选择出这些区域并记录下来。如图7中所示,一个牙齿模型A被连接体模型B相交(牙齿模型与连接体模型的平面表示),A被分割成了3个区域:Reg1、Reg2、Reg3;图8所示的是删除区域之后需要满足的效果,由图8可知模型A需要从这三个区域中查找出多余的区域Reg1然后删除。所以大体上分为两个部分:选择出多余的区域、删除多余的区域,其详细算法流程如下:
[0142] 步骤一、计算各区域的中心点:牙齿模型与连接体模型相交,被分割成多个区域。结合图7进行说明,牙齿模型一共被划分成3个区域Reg1、Reg2、Reg3,而每一个区域实际就是模型顶点的集合,那么可以求各个点集的平均坐标,也就得到了各个区域的中心点O1,O2,O3;
[0143] 步骤二、计算牙齿和连接体中心点M1、M2,构成轴线:求出牙齿模型的中心点M1和连接体模型的中心点M2,中心点是根据平均坐标的方法而得到的:
[0144] 牙齿模型的中心点M1(X1,Y1,Z1);连接体模型的中心点M2(X2,Y2,Z2);
[0145] 以M1点的求取为例进行说明,首先求得模型上每一个点的坐标:P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)……,Pn(xn,yn,zn),n表示牙齿模型A顶点数目,中心点M1的坐标通过下式求解:
[0146] X1=(x1+x2+x3……+xn)/n;
[0147] Y1=(y1+y2+y3……+yn)/n;
[0148] Z1=(z1+z2+z3……+zn)/n;
[0149] 最后得到M1(X1,Y1,Z1)点坐标,同理可以得到连接体模型的中心点M2;点M1、M2构成一条线,作为投影的轴线,用向量来代替为:Dir=M1M2/|M1M2|。
[0150] 步骤三、O1、O2、O3向轴线投影:因为我们的投影轴线M1M2用向量的形式表示了,为了简便,各个区域中心点O1、O2、O3我们也构造向量M1O1、M1O2、M1O3,并对其单位化,然后点乘即可得到投影点。
[0151] dir1=M1O1/|M1O1|;
[0152] dir2=M1O2/|M1O2|;
[0153] dir3=M1O3/|M1O4|;
[0154] t1=dir1*Dir;
[0155] t2=dir2*Dir;
[0156] t3=dir3*Dir;
[0157] t1、t2、t3即表示O1、O2、O3三个点在投影轴线上的投影点;
[0158] 步骤四、投影点排序,选择区域:t值表示投影点,但本身是向量点乘得到的一个数值,可以相互比较大小。首先对t值进行比较,按照从大到小的顺序进行排列。对于牙齿模型A而言t值最大所对应的那个区域就是要删除的区域。
[0159] 同理,若要删除连接体上多余的区域,方法可以重复步骤一 步骤四,最后t值最小~所对应的那个区域是要删除的区域。对照图7和图8的平面示意图可知,牙齿模型A多余的区域是O1所处的区域Reg1;
[0160] 步骤五、删除多余区域。在上一步骤记录了每一个模型上要删除的区域,这里要一次性全部删除。删除区域实际就是删除点,因为模型被划分成各个区域之后,每一个区域内包含的实际上还是点,删除点的好处是点所构成的面、线以及点的句柄等拓扑结构全部删除。对每两个模型依次操作,删除多余的区域。图9表示两个固位体、两个连接体、一个桥体(牙齿)全部进行相交区域删除操作之后剩下的模型表面。
[0161] 步骤4、对进行区域删除后的该两个模型进行边界匹配缝合后,进行光顺处理。
[0162] 从图9可以看到,删除区域之后就会在模型上产生空洞,空洞的边界实际是一圈点构成,与之相对的另一个模型也有这样一圈点集,在三角网格模型中位于模型边缘的一圈实际就是模型的边界线。两个相对的模型中间有间隙,也就意味着他们依然是相互独立的不同的模型,而我们最终需要的义齿桥融合体是一整个模型,所以这个缝隙要缝合起来。
[0163] 对于给定两条边界(两圈顶点)Vec1,Vec2要缝合在一起,为了使缝合的三角片比较规整和对齐,首先就要对这两条边界进行匹配,使Vec1上的每一个顶点都能够合理地对应上Vec2上的一个顶点。由于两个模型裁剪后留下的边界线形状比较整齐,两条边界线距离也比较近,于是这里给出一种比较适合的边界匹配算法:距离匹配法。
[0164] (一)距离匹配法具体通过以下方式实施:
[0165] 对于两组顶点向量Vec1,Vec2,存储的顶点分别为:v10、v21……v1n以及v20、v21……v2m。
[0166] 这里指的匹配是通过一种算法使得Vec1里的每个点在Vec2里都有其对应点。
[0167] 算法总体步骤是:
[0168] a)计算Vec2里顺序连接各点形成的总的边长长度Len2;
[0169] b)依次算出点v20到v2i按照序连接形成的边长的长度占Len2的比率p2i;
[0170] c)同理计算Vec1里的每个点的边长长度比率p1j;
[0171] d)根据p1j在p2i里面的位置关系确定v1j(v2j)之间的匹配关系。对v1j,将与其p1j值最接近的p2i所对应的点作为其匹配点。
[0172] 如图10所示,完成边界匹配之后边界Vec1里的每个点在边界Vec2里都有其对应点。需要注意的是Vec2上的点不一定对应得到Vec1里面的点,这属于正常情况。
[0173] (二)边界缝合
[0174] 完成边界匹配之后,以这个匹配关系作为指引将这两条边界缝合在一起,边界缝合在一起后,两个分离开的模型也就合二为一,这是算法所要的结果。因为边界匹配时所采用的距离匹配法可以保证Vec1上的点P都有自己的匹配点P’,只需将P P’连接在一起其实就完成了缝合的很大一部分,接下来只需要将Vec2中未进行匹配的点在Vec1中找到一个对应点,然后连接起来就完成了缝合,所以基于距离匹配下的边界缝合方法效率会很高,可以确保正确性和快速性,而且在很多要求的范围内可以使得缝合可以一次性完成,无需进行额外的处理,提高了执行的效率。将Vec2中未进行匹配的点在Vec1中找到一个对应点也可以采用与上述边界匹配中同样的方法,将与该点的比率最接近的点作为其匹配点。
[0175] 本实施例的边界缝合方法还可以采用以下流程:
[0176] S441、依次遍历获取基准边界的每个点及其在匹配边界中的对应匹配点;
[0177] S442、判断基准边界的当前点的匹配点及下一个点的匹配点是否相同,若是,则将当前点、下一个点及它们的匹配点连接形成一三角形后继续遍历,反之执行步骤S443;
[0178] S443、将当前点和下一个点对应的两个匹配点在匹配边界上向中间收敛为新的匹配点,并判断该两个新的匹配点是否为同一点,若是,则将当前点、下一个点和该收敛点连接形成一三角形后继续遍历,反之执行步骤S444;
[0179] S444、则将当前点、下一个点和该两个收敛点连接形成两个三角形;
[0180] S445、迭代执行步骤S441 S444直到遍历结束。图11展示了将Vec1和Vec2进行边界~缝合后形成的三角形示意图。
[0181] 采用本缝合方法进行模型缝合的结果如图12所示,图12中,连接体右边界线与牙齿模型左边界线相对,利用模型缝合算法将其缝合在一起,合并成同一个模型。初始缝合的模型在缝合处会很尖锐,难以满足应力要求,可以采用Laplace光顺法进行处理。图12展示了连接体与牙齿模型缝合然后进行光顺的结果,图中左边方框内表示删除多余区域后的牙齿模型,中间方框内表示删除多余区域后的连接体模型,右边方框内表示两者缝合并光顺后的融合体,由图中可知,本发明具有较好的融合效果。
[0182] 最后,模型的融合每次针对的是两个模型,而义齿桥的融合一共包含5个模型(2个固位体模型、2个连接体模型、1个桥体模型),所以要分步进行,先将两个模型融合成一个模型之后,在重复本方法与第3个模型进行融合,通过多次融合即可得到最终的义齿桥融合体。
[0183] 本方法可以快速求解出义齿桥融合体的各模型之间的交线,而且通过筛选删除多余区域后,再进行边界缝合实现融合,可以大大减少计算量,算法简单,便于实行,而且具有较好的融合效果。
[0184] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。