CN103606193A - 一种自适应细分方法及装置 - Google Patents
一种自适应细分方法及装置 Download PDFInfo
- Publication number
- CN103606193A CN103606193A CN201310634474.7A CN201310634474A CN103606193A CN 103606193 A CN103606193 A CN 103606193A CN 201310634474 A CN201310634474 A CN 201310634474A CN 103606193 A CN103606193 A CN 103606193A
- Authority
- CN
- China
- Prior art keywords
- control
- state
- tri patch
- tri
- bound
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明适用于计算机图形技术领域,提供了一种自适应细分方法及装置,所述方法包括:检测参与细分区域中任意两个相邻三角面片之间二面角的值;当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片;若所述两个相邻三角面片都为内部三角面片,将所述两个相邻三角面片的控制状态都设置为Inner_1;若所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2。通过本发明可以方便、快速的对局部区域进行细分,避免了全局细分的巨大耗时。
Description
技术领域
本发明属于计算机图形技术领域,尤其涉及一种自适应细分方法及装置。
背景技术
现有的大部分自适应细分方法是用于全局网格模型的,在全局网格模型上搜索不平滑或者曲率较高的部分,对其进行自适应的细分。但在某些实时交互的应用场景下,由于网格模型比较巨大,为了节省运算时间,只需要对网格模型的其中一小部分区域,进行局部区域的自适应细分。然而,目前针对实时交互网络模型中局部区域的自适应细分还没有一种有效的方式。
发明内容
本发明实施例在于提供一种自适应细分方法,以解决实时交互网络模型中局部自适应细分的问题。
本发明实施例的第一方面,提供一种自适应细分方法,所述方法包括:
检测参与细分区域中任意两个相邻三角面片之间二面角的值;
当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片;
若所述两个相邻三角面片都为内部三角面片,则将所述两个相邻三角面片的控制状态都设置为Inner_1;
若所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2;
若所述两个相邻三角面片都为边界三角面片,则将所述两个相邻三角面片的控制状态都设置为Bound_2或Bound_3,或者将所述两个相邻三角面片的其中一个三角面片的控制状态设置为Bound_2,另一个三角面片的控制状态设置为Bound_3;
其中,控制状态Inner_1表示在内部三角面片的三条边上分别插入一个顶点,然后再将三个新插入的顶点连接,将原来的一个三角面片分成4个三角面片;控制状态Bound_1表示在只有一条边为边界边的边界三角面片的两条非边界边上分别插入一个顶点,然后再将新插入的两个顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成三个三角面片;控制状态Bound_2表示在只有一条边为边界边的边界三角面片的其中任意一条非边界边上插入一个顶点,然后再将新插入的顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成两个三角面片;控制状态Bound_3表示在有两条边为边界边的边界三角面片的非边界边上插入一个顶点,然后再将新插入的两个顶点与两条边界边共用的顶点连接,将原来的一个三角面片分成两个三角面片。
本发明实施例的第二方面,提供一种自适应细分装置,所述装置包括:
第一检测单元,用于检测参与细分区域中任意两个相邻三角面片之间二面角的值;
判断单元,用于当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片;
第一设置单元,用于当所述判断单元判断结果为所述两个相邻三角面片都为内部三角面片,则将所述两个相邻三角面片的控制状态都设置为Inner_1;
第二设置单元,用于当所述判断单元判断结果为所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2;
第三设置单元,用于当所述判断单元判断结果为所述两个相邻三角面片都为边界三角面片,则将所述两个相邻三角面片的控制状态都设置为Bound_2或Bound_3,或者将所述两个相邻三角面片的其中一个三角面片的控制状态设置为Bound_2,另一个三角面片的控制状态设置为Bound_3;
其中,控制状态Inner_1表示在内部三角面片的三条边上分别插入一个顶点,然后再将三个新插入的顶点连接,将原来的一个三角面片分成4个三角面片;控制状态Bound_1表示在只有一条边为边界边的边界三角面片的两条非边界边上分别插入一个顶点,然后再将新插入的两个顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成三个三角面片;控制状态Bound_2表示在只有一条边为边界边的边界三角面片的其中任意一条非边界边上插入一个顶点,然后再将新插入的顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成两个三角面片;控制状态Bound_3表示在有两条边为边界边的边界三角面片的非边界边上插入一个顶点,然后再将新插入的两个顶点与两条边界边共用的顶点连接,将原来的一个三角面片分成两个三角面片。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过检测参与细分区域中任意两个相邻三角面片之间二面角的值,对所述二面角的值大于预设阈值的两个相邻三角面片进行控制状态的设置,根据所设置的控制状态可以方便、快速的对局部区域进行细分,避免了全局细分的巨大耗时。本发明实施例非常适合在实时交互网络模型中对某些局部区域进行平滑处理,具有较强的易用性和实用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的自适应细分方法的实现流程图;
图2是本发明第一实施例提供的内部三角面片和边界三角面片的控制状态分类的示意图;
图3是本发明第一实施例提供的内部三角面片和其周边三角面片的控制状态修改的示意图;
图4是本发明第一实施例提供的边界三角面片和其周边三角面片的控制状态修改的示意图;
图5是本发明第一实施例提供的自适应细分规则的示意图;
图6是本发明第一实施例提供的自适应细分结果的示例图;
图7是本发明第二实施例提供的自适应细分装置的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的自适应细分方法的实现流程,其过程详述如下:
在步骤S101中,检测参与细分区域中任意两个相邻三角面片之间二面角的值。
在本实施例中,所述三角面片包括内部三角面片和边界三角面片。所述内部三角面片(Interior triangle)指的是在参与细分的网格区域内部,且不与未参与细分网格区域相邻的三角面片;所述边界三角面片(Boundary triangle)指的是在参与细分的网格区域内部,且与未参与细分网格区域相邻的三角面片。
其中,所述二面角是指相邻两个三角面片的向量之间的夹角。本实施例通过检测参与细分网格区域中任意两个相邻三角面片之间的二面角作为是否要细分的准则。
在步骤S102中,当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片。
在本实施例中,当所述二面角的值小于或等于预设的阈值时,确定所述两个相邻三角面片区域为平滑区域,即所述两个相邻三角面片区域具有较低的曲率。当所述二面角的值大于预设的阈值时,确定所述两个相邻三角面片区域不够平滑,对所述两个相邻三角面片进行细分。
在步骤S103中,若所述两个相邻三角面片都为内部三角面片,则将所述两个相邻三角面片的控制状态都设置为Inner_1;
在步骤S104中,若所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2;
在步骤S105中,若所述两个相邻三角面片都为边界三角面片,则将所述两个相邻三角面片的控制状态都设置为Bound_2或Bound_3,或者将所述两个相邻三角面片的其中一个三角面片的控制状态设置为Bound_2,另一个三角面片的控制状态设置为Bound_3。
在本实施例中,控制状态Inner_1表示在内部三角面片的三条边上分别插入一个顶点,然后再将三个新插入的顶点连接,将原来的一个三角面片分成4个三角面片(如图2a所示);控制状态Bound_1表示在只有一条边为边界边的边界三角面片的两条非边界边上分别插入一个顶点,然后再将新插入的两个顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成三个三角面片(如图2c所示);控制状态Bound_2表示在只有一条边为边界边的边界三角面片的其中任意一条非边界边上插入一个顶点,然后再将新插入的顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成两个三角面片(如图2d所示);控制状态Bound_3表示在有两条边为边界边的边界三角面片的非边界边上插入一个顶点,然后再将新插入的两个顶点与两条边界边共用的顶点连接,将原来的一个三角面片分成两个三角面片(如图2e所示)。
其中,所述边界边(Boundary edge)指的是在参与细分的网格区域与未参与细分网格区域边界上的三角面片的边。
进一步的,为了处理局部区域边缘与未参与细分的网格区域之间的裂缝问题,本实施例根据每个三角面片的控制状态检测其周边(即预定范围内)三角面片的情况来寻找裂缝并做相应的处理。
其中,对于内部三角面片的处理,可以采用以下三种规则(如图3所示):
1)、当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1;
2)、当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1,所述另一个相邻的三角面片的控制状态修改为Inner_2;
3)、当检测到初始控制状态为NoSub的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为NoSub或Inner_2,另一个相邻的三角面片控制状态为Inner_1时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Inner_2;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
需要说明的是,初始控制状态中并不包括Inner_2,所述Inner_2是在循环处理的过程中根据规则2)或3)修改获得的。
进一步的,本实施例还包括:
当检测到某个内部三角面片的控制状态修改为Inner_2的次数超过两次时,将该内部三角面片的控制状态最终修改为Inner_1。
另外,对于边界三角面片的处理,可以采用以下三种规则(如图4所示):
1)、当检测到初始控制状态为NoSub或Bound_2的边界三角面片其预定范围内两个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Bound_2的内部三角面片的控制状态修改为Bound_1;
2)、当检测到初始控制状态为NoSub的边界三角面片其预定范围内两个相邻的三角面片其中的一个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_2;
3)、当检测到初始控制状态为NoSub的边界三角面片其预定范围内唯一一个相邻的三角面片的控制状态为Inner_1,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_3;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
进一步的,本实施例还包括:
当检测到某个边界三角面片的控制状态修改为Bound_2的次数超过两次时,将该边界三角面片的控制状态最终修改为Bound_1。
本实施例将循环的处理参与细分区域中的所有三角面片,对参与细分区域中任意两个相邻三角面片之间二面角的值大于所述预设阈值的三角面片进行控制状态的设置,直到任意两个相邻的三角面片之间的二面角的值都小于或等于所述预设阈值。通过不断检测符合以上六种规则的三角面片,对其控制状态进行修改,直到参与细分的区域中不再存在符合以上六种规则的三角面片。在完成了控制状态的设置以及控制状态的修改后,根据自适应Loop细分规则(如图5所示,图5(a)表示边规则,图5(b)表示顶点规则)来更新顶点的位置坐标,具体的计算公式如下:
其中,Ve是三角面片边上新插入的顶点,V1 e、分别为与共享此边(即新插入顶点的边)的两个三角面片的顶点,V'为原三角面片的顶点,其新位置坐标通过公式(2)进行更新,Vi为与V'顶点相连的N条边的顶点,αN为权值,通过公式(3)计算,其中N、i为大于或等于1的整数。
为了更好的说明书本发明实施例,在一个牙齿的三角面片网格模型中测试了本实施例所述自适应细分方法,如图6所示。图6(a)为原始的三角面片网格模型的示例图。图6(b)为对所述三角面片网格模型的局部区域进行形变处理后的示例图,图6(b)中的凹陷部分区域为准备进行细分的目标区域。通过本发明实施例的局部细分方法为凹陷部分区域中每个三角面片设置一个控制状态,然后根据所述控制状态对三角面片进行细分。图6(c)为经过在本发明实施例方法第一次循环后细分的结果。图6(d)为最终的细分结果。图6(e)为细分前所述三角面片网格模型侧面的图像,图6(f)为细分后所述三角面片网格模型侧面的图像。从图6可以看出,本发明实施例可以很好的平滑比较尖锐或者曲率较大的区域,同时又可以很好的保存原有的几何形状,避免裂缝的出现,具有较强的易用性和实用性。
本发明实施例在局部区域中可以避免对相对平滑区域进行再细分,而对于不平滑或者曲率较大的区域可以进行多次细分。另外,本实施例根据每个三角面片的控制状态检测其周边(即预定范围内)三角面片的情况来寻找裂缝并做相应的处理,可有效解决局部区域的边缘与未参与细分区域之间产生的裂缝问题,保证网格的连续性。通过本发明实施例可以方便、快速的对局部区域进行细分,避免了全局细分的巨大耗时,既提高了模型局部细分的处理速度,又很好的达到了对模型细分的目的,非常适合用于计算机实时交互模拟中对运行速率有较高要求的网格处理。
实施例二:
图7示出了本发明第二实施例提供的自适应细分装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该自适应细分装置可应用于各种终端设备,例如口袋计算机(PocketPersonal Computer,PPC)、掌上电脑、计算机、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)等,可以是运行于这些终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些终端中或者运行于这些终端的应用系统中。
该自适应细分装置包括第一检测单元71、判断单元72、第一设置单元73、第二设置单元74以及第三设置单元75。其中,各单元具体功能如下:
第一检测单元71,用于检测参与细分区域中任意两个相邻三角面片之间二面角的值;
判断单元72,用于当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片;
第一设置单元73,用于当所述判断单元72判断结果为所述两个相邻三角面片都为内部三角面片,则将所述两个相邻三角面片的控制状态都设置为Inner_1;
第二设置单元74,用于当所述判断单元72判断结果为所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2;
第三设置单元75,用于当所述判断单元72判断结果为所述两个相邻三角面片都为边界三角面片,则将所述两个相邻三角面片的控制状态都设置为Bound_2或Bound_3,或者将所述两个相邻三角面片的其中一个三角面片的控制状态设置为Bound_2,另一个三角面片的控制状态设置为Bound_3;
其中,控制状态Inner_1表示在内部三角面片的三条边上分别插入一个顶点,然后再将三个新插入的顶点连接,将原来的一个三角面片分成4个三角面片;控制状态Bound_1表示在只有一条边为边界边的边界三角面片的两条非边界边上分别插入一个顶点,然后再将新插入的两个顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成三个三角面片;控制状态Bound_2表示在只有一条边为边界边的边界三角面片的其中任意一条非边界边上插入一个顶点,然后再将新插入的顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成两个三角面片;控制状态Bound_3表示在有两条边为边界边的边界三角面片的非边界边上插入一个顶点,然后再将新插入的两个顶点与两条边界边共用的顶点连接,将原来的一个三角面片分成两个三角面片。
进一步的,所述装置还包括:
第一修改单元76,用于当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1;
第二修改单元77,用于当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1,所述另一个相邻的三角面片的控制状态修改为Inner_2;
第三修订单元78,用于当检测到初始控制状态为NoSub的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为NoSub或Inner_2,另一个相邻的三角面片控制状态为Inner_1时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Inner_2;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
进一步的,所述装置进一步包括:
第四修改单元79,用于当检测到某个内部三角面片的控制状态修改为Inner_2的次数超过两次时,将该内部三角面片的控制状态最终修改为Inner_1。
进一步的,所述装置还包括:
第五修改单元710,用于当检测到初始控制状态为NoSub或Bound_2的边界三角面片其预定范围内两个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Bound_2的内部三角面片的控制状态修改为Bound_1;
第六修改单元711,用于当检测到初始控制状态为NoSub的边界三角面片其预定范围内两个相邻的三角面片其中的一个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_2;
第七修改单元712,用于当检测到初始控制状态为NoSub的边界三角面片其预定范围内唯一一个相邻的三角面片的控制状态为Inner_1,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_3;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
进一步的,所述装置进一步包括:
第八修改单元713,用于当检测到某个边界三角面片的控制状态修改为Bound_2的次数超过两次时,将该边界三角面片的控制状态最终修改为Bound_1。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元或模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例的对应过程,在此不再赘述。
综上所述,本发明实施例在局部区域中可以避免对相对平滑区域进行再细分,而对于不平滑或者曲率较大的区域可以进行多次细分。另外,本实施例根据每个三角面片的控制状态检测其周边(即预定范围内)三角面片的情况来寻找裂缝并做相应的处理,可有效解决局部区域的边缘与未参与细分区域之间产生的裂缝问题,保证网格的连续性。通过本发明实施例可以方便、快速的对局部区域进行细分,避免了全局细分的巨大耗时,既提高了模型局部细分的处理速度,又很好的达到了对模型细分的目的,非常适合用于计算机实时交互模拟中对运行速率有较高要求的网格处理,具有较强的易用性和实用性。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
Claims (10)
1.一种自适应细分方法,其特征在于,所述方法包括:
检测参与细分区域中任意两个相邻三角面片之间二面角的值;
当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片;
若所述两个相邻三角面片都为内部三角面片,则将所述两个相邻三角面片的控制状态都设置为Inner_1;
若所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2;
若所述两个相邻三角面片都为边界三角面片,则将所述两个相邻三角面片的控制状态都设置为Bound_2或Bound_3,或者将所述两个相邻三角面片的其中一个三角面片的控制状态设置为Bound_2,另一个三角面片的控制状态设置为Bound_3;
其中,控制状态Inner_1表示在内部三角面片的三条边上分别插入一个顶点,然后再将三个新插入的顶点连接,将原来的一个三角面片分成4个三角面片;控制状态Bound_1表示在只有一条边为边界边的边界三角面片的两条非边界边上分别插入一个顶点,然后再将新插入的两个顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成三个三角面片;控制状态Bound_2表示在只有一条边为边界边的边界三角面片的其中任意一条非边界边上插入一个顶点,然后再将新插入的顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成两个三角面片;控制状态Bound_3表示在有两条边为边界边的边界三角面片的非边界边上插入一个顶点,然后再将新插入的两个顶点与两条边界边共用的顶点连接,将原来的一个三角面片分成两个三角面片。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1;
当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1,所述另一个相邻的三角面片的控制状态修改为Inner_2;
当检测到初始控制状态为NoSub的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为NoSub或Inner_2,另一个相邻的三角面片控制状态为Inner_1时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Inner_2;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
3.如权利要求2所述的方法,其特征在于,所述方法进一步包括:
当检测到某个内部三角面片的控制状态修改为Inner_2的次数超过两次时,将该内部三角面片的控制状态最终修改为Inner_1。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到初始控制状态为NoSub或Bound_2的边界三角面片其预定范围内两个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Bound_2的内部三角面片的控制状态修改为Bound_1;
当检测到初始控制状态为NoSub的边界三角面片其预定范围内两个相邻的三角面片其中的一个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_2;
当检测到初始控制状态为NoSub的边界三角面片其预定范围内唯一一个相邻的三角面片的控制状态为Inner_1,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_3;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
5.如权利要求4所述的方法,其特征在于,所述方法进一步包括:
当检测到某个边界三角面片的控制状态修改为Bound_2的次数超过两次时,将该边界三角面片的控制状态最终修改为Bound_1。
6.一种自适应细分装置,其特征在于,所述装置包括:
第一检测单元,用于检测参与细分区域中任意两个相邻三角面片之间二面角的值;
判断单元,用于当所述二面角的值大于预设阈值时,判断所述两个相邻三角面片是否都为内部三角面片;
第一设置单元,用于当所述判断单元判断结果为所述两个相邻三角面片都为内部三角面片,则将所述两个相邻三角面片的控制状态都设置为Inner_1;
第二设置单元,用于当所述判断单元判断结果为所述两个相邻三角面片中一个三角面片为内部三角面片,另一个三角面片为边界三角面片,则将所述内部三角面片的控制状态设置为Inner_1,将所述边界三角面片的控制状态设置为Bound_1或Bound_2;
第三设置单元,用于当所述判断单元判断结果为所述两个相邻三角面片都为边界三角面片,则将所述两个相邻三角面片的控制状态都设置为Bound_2或Bound_3,或者将所述两个相邻三角面片的其中一个三角面片的控制状态设置为Bound_2,另一个三角面片的控制状态设置为Bound_3;
其中,控制状态Inner_1表示在内部三角面片的三条边上分别插入一个顶点,然后再将三个新插入的顶点连接,将原来的一个三角面片分成4个三角面片;控制状态Bound_1表示在只有一条边为边界边的边界三角面片的两条非边界边上分别插入一个顶点,然后再将新插入的两个顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成三个三角面片;控制状态Bound_2表示在只有一条边为边界边的边界三角面片的其中任意一条非边界边上插入一个顶点,然后再将新插入的顶点与边界边的其中任意一个顶点连接,将原来的一个三角面片分成两个三角面片;控制状态Bound_3表示在有两条边为边界边的边界三角面片的非边界边上插入一个顶点,然后再将新插入的两个顶点与两条边界边共用的顶点连接,将原来的一个三角面片分成两个三角面片。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
第一修改单元,用于当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1;
第二修改单元,用于当检测到初始控制状态为NoSub或Inner_2的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub或Inner_2的内部三角面片的控制状态修改为Inner_1,所述另一个相邻的三角面片的控制状态修改为Inner_2;
第三修订单元,用于当检测到初始控制状态为NoSub的内部三角面片其预定范围内三个相邻的三角面片其中的两个相邻的三角面片的控制状态为NoSub或Inner_2,另一个相邻的三角面片控制状态为Inner_1时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Inner_2;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
8.如权利要求7所述的装置,其特征在于,所述装置进一步包括:
第四修改单元,用于当检测到某个内部三角面片的控制状态修改为Inner_2的次数超过两次时,将该内部三角面片的控制状态最终修改为Inner_1。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
第五修改单元,用于当检测到初始控制状态为NoSub或Bound_2的边界三角面片其预定范围内两个相邻的三角面片的控制状态都为Inner_1时,将所述初始控制状态为NoSub或Bound_2的内部三角面片的控制状态修改为Bound_1;
第六修改单元,用于当检测到初始控制状态为NoSub的边界三角面片其预定范围内两个相邻的三角面片其中的一个相邻的三角面片的控制状态为Inner_1,另一个相邻的三角面片控制状态为NoSub或Inner_2时,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_2;
第七修改单元,用于当检测到初始控制状态为NoSub的边界三角面片其预定范围内唯一一个相邻的三角面片的控制状态为Inner_1,将所述初始控制状态为NoSub的内部三角面片的控制状态修改为Bound_3;
其中,控制状态Inner_2表示在内部三角面片的其中一条边上插入一个顶点,然后再将新插入的顶点与其所在的边相对的顶点连接,将原来的一个三角面片分成两个三角面片;控制状态NoSub表示三角面片未参与任何细分。
10.如权利要求9所述的装置,其特征在于,所述装置进一步包括:
第八修改单元,用于当检测到某个边界三角面片的控制状态修改为Bound_2的次数超过两次时,将该边界三角面片的控制状态最终修改为Bound_1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310634474.7A CN103606193B (zh) | 2013-11-29 | 2013-11-29 | 一种自适应细分方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310634474.7A CN103606193B (zh) | 2013-11-29 | 2013-11-29 | 一种自适应细分方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103606193A true CN103606193A (zh) | 2014-02-26 |
CN103606193B CN103606193B (zh) | 2016-10-12 |
Family
ID=50124413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310634474.7A Active CN103606193B (zh) | 2013-11-29 | 2013-11-29 | 一种自适应细分方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103606193B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106251377A (zh) * | 2015-06-05 | 2016-12-21 | 想象技术有限公司 | 使用位移因数的细分方法 |
CN106251384A (zh) * | 2015-06-05 | 2016-12-21 | 想象技术有限公司 | 使用三角形的递归再分的细分方法 |
CN106960469A (zh) * | 2017-03-15 | 2017-07-18 | 浙江大学 | 一种快速分割三角形的光滑自由变形算法 |
WO2020062547A1 (zh) * | 2018-09-30 | 2020-04-02 | 深圳市华讯方舟太赫兹科技有限公司 | 网格细分方法、图像处理设备及具有存储功能的装置 |
US11797748B2 (en) | 2018-12-28 | 2023-10-24 | Asml Netherlands B.V. | Method for generating patterning device pattern at patch boundary |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6462738B1 (en) * | 1999-04-26 | 2002-10-08 | Spatial Technology, Inc. | Curved surface reconstruction |
CN101510228A (zh) * | 2009-03-26 | 2009-08-19 | 山东理工大学 | 产品stl模型非均匀精简方法 |
CN101510226A (zh) * | 2009-03-26 | 2009-08-19 | 山东理工大学 | 产品stl模型快速自适应细分方法 |
CN101872488A (zh) * | 2009-04-27 | 2010-10-27 | 鸿富锦精密工业(深圳)有限公司 | 曲面渲染系统及方法 |
-
2013
- 2013-11-29 CN CN201310634474.7A patent/CN103606193B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6462738B1 (en) * | 1999-04-26 | 2002-10-08 | Spatial Technology, Inc. | Curved surface reconstruction |
CN101510228A (zh) * | 2009-03-26 | 2009-08-19 | 山东理工大学 | 产品stl模型非均匀精简方法 |
CN101510226A (zh) * | 2009-03-26 | 2009-08-19 | 山东理工大学 | 产品stl模型快速自适应细分方法 |
CN101872488A (zh) * | 2009-04-27 | 2010-10-27 | 鸿富锦精密工业(深圳)有限公司 | 曲面渲染系统及方法 |
US20100271369A1 (en) * | 2009-04-27 | 2010-10-28 | HONG FU JIN PRECISION INDUSTRY (ShenZhen)., LTD. | Curved surface rendering system and method |
Non-Patent Citations (4)
Title |
---|
ASHISH AMRESH等: "《Adaptive Subdivision Schemes for Triangular Meshes》", 《HTTP://PRISM.ASU.EDU/RESEARCH/DATA PUBLICATIONS/PAPER03_ASSTM.PDF》 * |
JIANHUANG WU等: "《Adaptive Refinement Scheme for Subdivision Surfaces based on Triangular Meshes》", 《NINTH INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN AND COMPUTER GRAPHICS》 * |
张丽艳等: "《自适应三角网格模型重新布点算法的研究》", 《计算机辅助设计与图形学学报》 * |
张欣等: "《基于特征保持的三角形折叠网格简化算法》", 《计算机技术与发展》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106251377A (zh) * | 2015-06-05 | 2016-12-21 | 想象技术有限公司 | 使用位移因数的细分方法 |
CN106251384A (zh) * | 2015-06-05 | 2016-12-21 | 想象技术有限公司 | 使用三角形的递归再分的细分方法 |
CN106251377B (zh) * | 2015-06-05 | 2021-08-06 | 想象技术有限公司 | 使用位移因数的细分方法 |
CN106251384B (zh) * | 2015-06-05 | 2021-08-10 | 想象技术有限公司 | 使用三角形的递归再分的细分方法 |
CN106960469A (zh) * | 2017-03-15 | 2017-07-18 | 浙江大学 | 一种快速分割三角形的光滑自由变形算法 |
CN106960469B (zh) * | 2017-03-15 | 2019-05-28 | 浙江大学 | 一种快速分割三角形的光滑自由变形方法 |
WO2020062547A1 (zh) * | 2018-09-30 | 2020-04-02 | 深圳市华讯方舟太赫兹科技有限公司 | 网格细分方法、图像处理设备及具有存储功能的装置 |
US11797748B2 (en) | 2018-12-28 | 2023-10-24 | Asml Netherlands B.V. | Method for generating patterning device pattern at patch boundary |
Also Published As
Publication number | Publication date |
---|---|
CN103606193B (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103606193A (zh) | 一种自适应细分方法及装置 | |
CN103336855A (zh) | 一种基于多子群粒子群算法的二维不规则排样方法 | |
CN103810756B (zh) | 基于不规则区域的自适性的Loop细分曲面的绘制方法 | |
US20160180588A1 (en) | Identifying features in polygonal meshes | |
CN112288807B (zh) | 一种高精度地图中路口数据生成方法及装置 | |
CN104267940A (zh) | 一种基于cpu+gpu的地图切片的快速生成方法 | |
CN114611437A (zh) | 基于cfd技术的飞行器气动模型数据库的建立方法及装置 | |
CN103065305B (zh) | 虚拟手术训练系统中基于四面体的组织模型切割方法 | |
CN104240290A (zh) | 一种基于包围球模型的三维电缆相交检测方法 | |
CN111127614B (zh) | 模型的描边处理方法、装置、存储介质及终端 | |
Zhang et al. | An adaptive element subdivision method for evaluation of weakly singular integrals in 3D BEM | |
CN114462141B (zh) | 基于cfd的多尺度模拟方法、系统和存储介质 | |
CN104361625A (zh) | 一种基于射线原理的带边界保留的云数据精简算法 | |
CN103116897A (zh) | 一种基于图像空间的三维动态数据压缩和平滑方法 | |
CN103310409B (zh) | 一种Tile-based渲染架构GPU的三角形快速分块方法 | |
CN111295695B (zh) | 三维网格数据简化方法及装置 | |
CN105678844A (zh) | 一种基于地物散乱点逐点增加的轮廓构建算法 | |
CN105551048A (zh) | 一种基于空间面片的三维角点检测方法 | |
Meng et al. | Anisotropic Cartesian grid generation strategy for arbitrarily complex geometry based on a fully threaded tree | |
CN105389851B (zh) | 一种基于顶点和新边点统一调整的Loop细分实现方法 | |
CN103413306A (zh) | 一种自适应阈值的Harris角点检测方法 | |
Rahim et al. | Evaluation of adaptive subdivision method on mobile device | |
Zhang et al. | A coverage control algorithm based on probability model for three-dimensional wireless sensor networks | |
Huang et al. | Segmentation algorithm of three-dimensional point cloud data based on region growing | |
CN112883668A (zh) | 基于多层网格的lbm并行优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |