本说明书涉及计算机,尤其涉及一种三角面片网格构建方法、装置、存储介质及电子设备。
背景技术:
1、增材制造,又称3d打印,是一种依据三维模型,通过材料的逐层累加制造实体零件的技术。在应用时,需将三维模型网格化,重构得到三角面片网格,在三角面片网格中,利用点和边组成的三角面片逼近三维模型的表面。然后通过预设的自底向上的各切平面,与三角面片网格数据相交得到的实体零件的横截面轮廓,最后根据横截面轮廓,将材料自底向上逐层累加,得到实体零件。
2、目前,在将三角面片网格的构建过程中,通过多叉树数据结构表示三维空间。多叉树的每个节点表示一个立方体的体积空间范围,一个节点的各子节点分别表示的体积空间范围,合起来等于该节点所表示的体积空间范围。传统的多叉树算法,采用深度优先遍历的方式,自顶向下递归分割根节点直至预先规定的最大深度。gpu不支持递归调用,因此传统多叉树算法无法使用gpu进行并行化计算,导致三角面片网格构建效率较低。
3、基于此,本说明书提供一种三角面片网格构建方法。
技术实现思路
1、本说明书提供一种三角面片网格构建方法、装置、存储介质及电子设备,以至少部分地解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种三角面片网格构建方法,包括:
4、获取待打印物体的目标三维模型,确定所述目标三维模型的包围盒;
5、对所述包围盒分层进行空间划分,得到各划分层次的子体素;
6、按照空间分辨率从低至高的顺序,依次针对每个划分层次,在该划分层次的各子体素中,确定与所述目标三维模型相交的子体素,作为该划分层次对应的相交体素;根据该划分层次对应的相交体素中的下一划分层次的各子体素,继续确定下一划分层次对应的相交体素,直至确定最后一个划分层次对应的相交体素;
7、根据所述最后一个划分层次对应的相交体素与所述目标三维模型的交点,构建所述目标三维模型的三角面片网格。
8、可选地,确定所述目标三维模型的包围盒,具体包括:
9、确定所述目标三维模型所在的空间坐标系;
10、针对所述空间坐标系的每个坐标轴,确定所述目标三维模型在该坐标轴的两个边界点;
11、根据所述两个边界点,确定所述目标三维模型在该坐标轴的空间范围;
12、根据所述目标三维模型在各坐标轴的空间范围,确定所述目标三维模型的包围盒。
13、可选地,对所述包围盒分层进行空间划分,得到各划分层次的子体素,具体包括:
14、按照空间分辨率从低至高的顺序,依次针对每个划分层次,确定该划分层次的待划分体素;
15、根据该划分层次对应的划分数量,对所述待划分体素进行划分,得到所述待划分体素的各子体素;
16、判断所述待划分体素的各子体素的尺寸是否符合预设分辨率;
17、若是,停止划分过程;
18、若否,确定下一划分层次的划分数量,继续划分过程。
19、可选地,在该划分层次的各子体素中,确定与所述目标三维模型相交的子体素,作为该划分层次对应的相交体素,具体包括:
20、在该划分层次的各子体素中,确定需要进行距离计算的子体素,作为该划分层次的待计算体素;
21、根据该划分层次的待计算体素到所述目标三维模型的表面的距离,确定与所述目标三维模型相交的子体素,作为该划分层次对应的相交体素;将该划分层次对应的相交体素,作为下一划分层次的待计算体素。
22、可选地,在该划分层次的各子体素中,确定需要进行距离计算的子体素,作为该划分层次的待计算体素,具体包括:
23、当该划分层次是第一个划分层次时,将该划分层次的各子体素,作为该划分层次的待计算体素;
24、当该划分层次不是第一个划分层次时,将基于上一个划分层次对应的相交体素划分得到的各子体素,作为该划分层次的待计算体素。
25、可选地,根据该划分层次的待计算体素到所述目标三维模型的表面的距离,确定与所述目标三维模型相交的子体素,作为该划分层次对应的相交体素,具体包括:
26、分别计算该划分层次的待计算体素的各顶点,到所述目标三维模型的表面的距离;
27、判断计算得到的各距离中是否存在小于预设值的距离;
28、若是,则确定所述待计算体素,是该划分层次对应的相交体素;
29、若否,则确定所述待计算体素,不是该划分层次对应的相交体素。
30、可选地,根据所述最后一个划分层次对应的相交体素与所述目标三维模型的交点,构建所述目标三维模型的三角面片网格,具体包括:
31、确定所述最后一个划分层次对应的相交体素的各条边;
32、针对每条边,分别计算该边对应的两个顶点与所述目标三维模型的符号距离;
33、当所述两个顶点与所述目标三维模型的符号距离为不同符号时,在该边进行插值,确定该边上的插值点,根据所述插值点,确定该边与所述目标三维模型的交点;
34、根据所述最后一个划分层次对应的相交体素的各条边,与所述目标三维模型的交点,构建所述目标三维模型的三角面片网格。
35、本说明书提供了一种三角面片网格构建装置,所述装置包括:
36、获取模块,获取待打印物体的目标三维模型,确定所述目标三维模型的包围盒;
37、划分模块,对所述包围盒分层进行空间划分,得到各划分层次的子体素;
38、分层计算模块,按照空间分辨率从低至高的顺序,依次针对每个划分层次,在该划分层次的各子体素中,确定与所述目标三维模型相交的子体素,作为该划分层次对应的相交体素;根据该划分层次对应的相交体素中的下一划分层次的各子体素,继续确定下一划分层次对应的相交体素,直至确定最后一个划分层次对应的相交体素;
39、网格构建模块,根据所述最后一个划分层次对应的相交体素与所述目标三维模型的交点,构建所述目标三维模型的三角面片网格。
40、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述三角面片网格构建方法。
41、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述三角面片网格构建方法。
42、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
43、在本说明书提供的三角面片网格构建方法中,获取待打印物体的目标三维模型,确定目标三维模型的包围盒,对该包围盒分层进行空间划分,得到各划分层次的子体素。按照空间分辨率从低至高的顺序,依次针对每个划分层次,在该划分层次的各子体素中,确定与目标三维模型相交的子体素,作为该划分层次对应的相交体素。根据最后一个划分层次对应的相交体素与目标三维模型的交点,构建目标三维模型的三角面片网格。在本方法中,按照各划分层次确定相交体素,即每次处理一个划分层次的子体素,同一划分层次的子体素之间没有前后依赖关系,可以并行计算,则本方法适用于gpu,可利用gpu的并行计算能力,加速三角面片网格的构建过程。