CN109360215B - 三维模型的外轮廓查找方法、装置、设备和存储介质 - Google Patents
三维模型的外轮廓查找方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109360215B CN109360215B CN201811009997.1A CN201811009997A CN109360215B CN 109360215 B CN109360215 B CN 109360215B CN 201811009997 A CN201811009997 A CN 201811009997A CN 109360215 B CN109360215 B CN 109360215B
- Authority
- CN
- China
- Prior art keywords
- triangular
- sub
- patch
- patches
- triangular patch
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种三维模型的外轮廓查找方法、装置、设备和存储介质。所述方法包括:获取三维模型的点表和三维模型上相交的三角面片,将三角面片划分为子三角面片,根据点表生成子三角面片的三角面片信息,在子三角面片中查找非流形边,依据子三角面片的三角面片信息和非流形边,确定子三角面片之间的位置关系,根据子三角面片之间的位置关系确定三维模型的外轮廓。在三维模型存在自相交现象时,采用本方法能够有效地提高了三维模型外轮廓查找的准确度。
Description
技术领域
本申请涉及计算机图形技术领域,特别是涉及一种三维模型的外轮廓查找方法、装置、设备和存储介质。
背景技术
在三维模型的构建过程中,将扫描到的点云信息中各数据点以三角形的形式进行连接,使得三维模型以三角面片网格的形式反映出来。构建后的三维模型中,三角面片之间除了边相连的关系外,还可能存在相交的现象,即三维模型出现模型自相交现象,该现象是常见的模型错误。在对三维模型进行纹理融合时,模型自相交现象会降低纹理融合的精度,如何去除模型自相交是一直以来的研究热点。
在去除三维模型的模型自相交时,需要对三维模型相交区域的三角面片进行划分,求得三角面片的交线,再依据三角面片的交线判断划分得到的子三角面片是三维模型的外轮廓还是内轮廓。然而,目前三角面片之间的交线、子三角面片的三个顶点坐标都是运算得到的,而子三角面片之间的位置关系又是基于三角面片之间的交线和子三角面片的三个顶点坐标运算得到的。运算过程存在浮点数误差,使得无法精确子三角面片之间的位置关系,进而可能将位于三维模型内部的子三角面片判断为外轮廓,或者将位于三维模型外部的子三角面片判断为内轮廓。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高三维模型外轮廓查找精度的三维模型的外轮廓查找方法、装置、设备和存储介质。
一种三维模型的外轮廓查找方法,所述方法包括:
获取三维模型的点表和所述三维模型上相交的三角面片;
将每个所述三角面片划分为子三角面片,根据所述点表生成每个所述子三角面片对应的三角面片信息;
在所述子三角面片中查找非流形边,根据所述子三角面片对应的三角面片信息,确定以所述非流形边为共同边的所述子三角面片之间的位置关系;
根据所述子三角面片之间的位置关系,确定所述三维模型的外轮廓。
在其中一个实施例中,将每个所述三角面片划分为子三角面片,根据所述点表生成每个所述子三角面片对应的三角面片信息的步骤,包括:
从所述点表中获取所述三角面片上三个顶点的索引,由所述三角面片上三个顶点的索引构成所述三角面片的顶点索引集合;
将所述三角面片划分为所述子三角面片,并将所述三角面片的顶点索引集合设置为所述子三角面片对应的三角面片信息。
在其中一个实施例中,将每个所述三角面片划分为子三角面片的步骤:包括:
根据所述三角面片上所有的点和边,将所述三角面片划分为所述子三角面片,并将所述子三角面片上的顶点存储至所述点表中。
在其中一个实施例中,在所述子三角面片中查找非流形边的步骤,包括:
从所述点表中获取所述子三角面片上三个顶点的索引,由所述子三角面片上三个顶点的索引构成所述子三角面片的顶点索引集合;
在所述子三角面片的顶点索引集合中,查找在两个以上所述子三角面片中出现的边。
在其中一个实施例中,确定以所述非流形边为共同边的所述子三角面片之间的位置关系的步骤,包括:
在以所述非流形边为共同边的所述子三角面片中,根据所述子三角面片对应的三角面片信息,通过预设的递归方式确定所述子三角面片之间的位置关系。
在其中一个实施例中,通过预设的递归方式确定所述子三角面片之间的位置关系的步骤,包括:
在以所述非流形边为共同边的所述子三角面片中,选取当前子三角面片;
根据所述当前子三角面片对应的三角面片信息,判断所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系;
根据所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系,将剩余的以所述非流形边为共同边的所述子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合;
依次对所述正向集合和所述反向集合进行递归分类,直至分类后的所述正向集合和所述反向集合都仅剩一个所述子三角面片。
在其中一个实施例中,判断所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系的步骤,包括:
根据所述当前子三角面片对应的三角面片信息和所述非流形边,确定所述当前子三角面片上预设顶点在所述三角面片上对应的顶点;
根据第一子三角面片对应的三角面片信息,判断所述三角面片上对应的顶点与所述第一子三角面片对应的所述三角面片之间的位置关系,所述预设顶点为所述当前子三角面片上与所述非流形边位置相对的顶点,所述第一子三角面片为剩余的以所述非流形边为共同边的任一所述子三角面片。
一种三维模型的外轮廓查找装置,所述装置包括:
信息获取模块,用于获取三维模型的点表和所述三维模型上相交的三角面片;
面片划分模块,用于将每个所述三角面片划分为子三角面片,根据所述点表生成所述每个子三角面片对应的三角面片信息;
位置确定模块,用于在所述子三角面片中查找非流形边,根据所述子三角面片对应的三角面片信息,确定以所述非流形边为共同边的所述三角面片之间的位置关系;以及
外轮廓确定模块,用于根据所述三角面片之间的位置关系,确定所述三维模型的外轮廓。
一种三维模型处理设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取三维模型的点表和所述三维模型上相交的三角面片;
将每个所述三角面片划分为子三角面片,根据所述点表生成每个所述子三角面片对应的三角面片信息;
在所述子三角面片中查找非流形边,根据所述子三角面片对应的三角面片信息,确定以所述非流形边为共同边的所述子三角面片之间的位置关系;
根据所述子三角面片之间的位置关系,确定所述三维模型的外轮廓。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取三维模型的点表和所述三维模型上相交的三角面片;
将每个所述三角面片划分为子三角面片,根据所述点表生成每个所述子三角面片对应的三角面片信息;
在所述子三角面片中查找非流形边,根据所述子三角面片对应的三角面片信息,确定以所述非流形边为共同边的所述子三角面片之间的位置关系;
根据所述子三角面片之间的位置关系,确定所述三维模型的外轮廓。
上述三维模型的外轮廓查找方法、装置、设备和存储介质,在将相交的三角面片划分为子三角面片后,根据三维模型的点表生成子三角面片的三角面片信息,依据子三角面片的三角面片信息和子三角面片中的非流形边,确定子三角面片之间的位置关系,而无需通过运算方式得到三角面片的交线,也无需依据子三角面片的顶点坐标运算得到子三角面片的位置关系,从而在三维模型存在自相交现象时,降低了三维模型外轮廓查找的计算量,同时有效地提高了三维模型外轮廓查找的准确度。
附图说明
图1为一个实施例中三维模型的外轮廓查找方法的流程示意图;
图2为一个实施例中相交的三角面片、子三角面片和非流形边的示例图;
图3为一个实施例中三维模型的外轮廓查找装置的结构框图;以及
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种三维模型的外轮廓查找方法,包括以下步骤:
步骤102,用于获取三维模型的点表和三维模型上相交的三角面片。
其中,三维模型是由三角面片组成的、并存在模型自相交现象的三维网格模型,该三维模型上可存在多组相交的三角面片,每组相交的三角面片可为相交于同一条交线的两个或两个以上三角面片。三维模型的点表中存储着三维模型上的所有点和所有点对应的索引。
步骤104,将每个三角面片划分为子三角面片,根据点表生成每个子三角面片对应的三角面片信息。
在获取到三维模型上相交的三角面片后,将每个三角面片划分为子三角面片,划分得到的子三角面片之间不存在相交关系。三角面片被划分为子三角面片后,三角面片就从三维模型上消失了,代替三角面片存在的是划分得到的子三角面片,因此为了保存三角面片与子三角面片的对应关系,从点表中获取三角面片的相关信息,将这些相关信息设置为子三角面片对应的三角面片信息。
在一个实施例中,从点表中获取三角面片上三个顶点的索引,由三角面片上三个顶点的索引构成三角面片的顶点索引集合,将三角面片划分为子三角面片后,将三角面片的顶点索引集合设置为子三角面片对应的三角面片信息,以便于后续依据三角面片的顶点对子三角面片之间的位置关系进行判断。
在一个实施例中,根据三角面片上所有的点和边,采用预设的三角剖分算法将每个三角面片划分为子三角面片,并将子三角面片的顶点存储在点表中,以提高三角面片的划分效率。进一步地,三角剖分算法为带约束的Delaunay三角剖分(Constrained DelaunayTriangulation,简称CDT)算法,将三角面片上的边界边、划分点和划分边输入CDT算法,获得划分后的子三角面片,其中,边界边为三角面片边界的三条边,划分点为三角面片上除三个顶点以外的点,划分边为三角面片上除边界边以外的边。
步骤106,在子三角面片中查找非流形边,根据子三角面片对应的三角面片信息,确定以非流形边为共同边的子三角面片之间的位置关系。
其中,非流形边为被两个以上的子三角面片共享的边,即相交的三角面片之间的交线。确定三维模型的外轮廓,需要先判断以三角面片的交线为共同边的子三角面片之间的位置关系,即判断以非流形边为共同边的子三角面片之间的位置关系。例如,在图2中,三角面片ABC与三角面片DEF为相交的三角面片,子三角面片JKH和子三角面片JKM由三角面片ABC划分得到的,子三角面片JKL和子三角面片JKI由三角面片DEF划分得到,边JK为这些子三角面片中的非流形边,也为三角面片ABC与三角面片DEF的交线,也为子三角面片JKH、JKM、JKL和JKI的共同边,在这些子三角面片中确定三维模型的外轮廓,需要确定以边JK为共同边的子三角面片之间的位置关系。
在一个实施例中,在子三角面片中查找非流形边时,从点表中获取每个子三角面片上三个顶点的索引,由子三角面片上三个顶点的索引构成子三角面片的顶点索引集合。查找在不同子三角面片的顶点索引集合中同时出现次数超过2次的顶点对,由该顶点对构成的边为子三角面片中的非流形边,从而无需通过运算即可获得三角面片的交线。例如,当J点、K点、L点、I点在点表中的索引分别为1、2、3、4时,子三角面片JKL的顶点索引集合为(1,2,3),子三角面片JKI的顶点索引集合为(1,2,4)。
在一个实施例中,在确定以非流形边为共同边的子三角面片之间的位置关系时,根据子三角面片对应的三角面片信息,通过预设的递归方式确定子三角面片之间的位置关系,以提高子三角面片之间位置关系确定的效率。
在一个实施例中,在通过递归方式确定子三角面片之间的位置关系时,从以非流形边为共同边的子三角面片中随机选取当前子三角面片。根据当前子三角面片对应的三角面片信息,判断当前子三角面片与剩余的以非流形边为共同边的子三角面片的位置关系,根据这些位置关系将剩余的以非流形边为共同边的子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合。
进一步地,将与当前子三角面片共面、且顶点位置方向相同的子三角面片分类至正向共面集合,将与当前子三角面片不共面、且顶点位置方向相同的子三角面片分类至正向集合,将与当前子三角面片共面、且顶点位置方向相反的子三角面片分类至反向共面集合,将与当前子三角面片不共面、且顶点位置方向相反的子三角面片分类至反向集合。其中,顶点位置方向由不位于非流形边上的顶点决定。
再选取正向集合中的一个子三角面片(可选取正向集合中的第一个子三角面片),根据该选取的子三角面片与正向集合中剩余的子三角面片之间的位置关系,将正向集合中剩余的子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合。对反向集合中的子三角面片也进行同样的分类操作。如此,对每次分类得到的正向集合、反向集合进行递归分类,直至最后分类到的正向集合和反向集合中都仅剩一个子三角面片。再依据递归分类得到的子三角面片之间的位置关系,获得所有以非流形边为共同边的子三角面片之间的位置关系,从而通过递归方式有效地提高子三角面片之间位置关系确定的效率。
在一个实施例中,在判断当前子三角面片与第一子三角面片的位置关系时,由于子三角面片对应的三角面片信息为相应三角面片的顶点索引集合,可以根据当前子三角面片对应的三角面片信息和非流形边,确定当前子三角面片上预设顶点在相应三角面片上对应的顶点,可以根据第一子三角面片对应的三角面片信息确定第一子三角面片对应的三角面片。通过判断该预设顶点在三角面片上对应的顶点与第一子三角面片对应的三角面片之间的位置关系,得到该预设顶点与第一子三角面片之间的位置关系,即当前子三角面片与第一子三角面片之间的位置关系。从而避免依据子三角面片的顶点直接计算子三角面片之间的位置关系,提高子三角面片之间位置关系确定的准确度。预设顶点为当前子三角面片上与非流形边位置相对的顶点,即不位于非流形边上的顶点,第一子三角面片为剩余的以非流形边为共同边的任一子三角面片。
作为示例地,图2中子三角面片JKL对应的三角面片信息为三角面片DFE的顶点索引集合、子三角面片JKH对应的三角面片信息为三角面片ABC的顶点索引集合,边JK为非流形边。可从点表中按照索引获取点D、F、E、J、K、A、B、C,进而得到点D、F、E、J、K、A、B、C在三维模型上的位置,点L为子三角面片JKL上的预设顶点,根据点J、K、D、F、E的位置,可确定得到点L与三角面片DFE上的点D对应。通过判断点D与三角面片ABC之间的位置关系,可得到点L与子三角面片JKH之间的位置关系,即子三角面片JKL与三角面片JKH之间的位置关系。由于在判断点D与三角面片ABC之间的位置关系,点D、A、B、C的坐标都是构建三维模型是就已知的,无需通过运算得到,因此可以有效提高子三角面片之间位置关系判断的准确度。
步骤108,根据子三角面片之间的位置关系,确定三维模型的外轮廓。
在获得以非流形边为共同边的所有子三角面片之间的位置关系后,可通过预设算法在这些子三角面片中确定三维模型的外轮廓。
在一个实施例中,预设算法可采用卷绕数(winding number)算法。
上述三维模型的外轮廓查找方法,在将相交的三角面片划分为子三角面片后,根据三维模型的点表生成子三角面片的三角面片信息,依据该三角面片信息和子三角面片中的非流形边,确定子三角面片之间的位置关系,而无需依据子三角面片的顶点坐标运算得到三角面片的交线和子三角面片之间的位置关系,从而在三维模型存在自相交现象时,降低了三维模型外轮廓查找的计算量,同时有效地提高了三维模型外轮廓查找的准确度。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种三维模型的外轮廓查找装置300,包括:信息获取模块302、面片划分模块304、位置确定模块306和外轮廓确定模块308,其中:
信息获取模块302,用于获取三维模型的点表和三维模型上相交的三角面片。
其中,三维模型是由三角面片组成的、并存在模型自相交现象的三维网格模型,该三维模型上可存在多组相交的三角面片,每组相交的三角面片可为相交于同一条交线的两个或两个以上三角面片。三维模型的点表中存储着三维模型上的所有点和所有点对应的索引。
面片划分模块304,用于将每个三角面片划分为子三角面片,根据点表生成每个子三角面片对应的三角面片信息。
在获取到三维模型上相交的三角面片后,将每个三角面片划分为子三角面片,划分得到的子三角面片之间不存在相交关系。三角面片被划分为子三角面片后,三角面片就从三维模型上消失了,代替三角面片存在的是划分得到的子三角面片,因此为了保存三角面片与子三角面片的对应关系,从点表中获取三角面片的相关信息,将这些相关信息设置为子三角面片对应的三角面片信息。
在一个实施例中,从点表中获取三角面片上三个顶点的索引,由三角面片上三个顶点的索引构成三角面片的顶点索引集合,将三角面片划分为子三角面片后,将三角面片的顶点索引集合设置为子三角面片对应的三角面片信息,以便于后续依据三角面片的顶点对子三角面片之间的位置关系进行判断。
在一个实施例中,根据三角面片上所有的点和边,采用预设的三角剖分算法将每个三角面片划分为子三角面片,并将子三角面片的顶点存储在点表中,以提高三角面片的划分效率。进一步地,三角剖分算法为CDT算法,将三角面片上的边界边、划分点和划分边输入CDT算法,获得划分后的子三角面片。
位置确定模块306,用于在子三角面片中查找非流形边,根据子三角面片对应的三角面片信息,确定以非流形边为共同边的三角面片之间的位置关系。
在一个实施例中,在子三角面片中查找非流形边时,从点表中获取每个子三角面片上三个顶点的索引,由子三角面片上三个顶点的索引构成子三角面片的顶点索引集合。查找在不同子三角面片的顶点索引集合中同时出现次数超过2次的顶点对,由该顶点对构成的边为子三角面片中的非流形边,从而无需通过运算即可获得三角面片的交线。
在一个实施例中,在确定以非流形边为共同边的子三角面片之间的位置关系时,根据子三角面片对应的三角面片信息,通过预设的递归方式确定子三角面片之间的位置关系,以提高子三角面片之间位置关系确定的效率。
在一个实施例中,在通过递归方式确定子三角面片之间的位置关系时,从以非流形边为共同边的子三角面片中随机选取当前子三角面片。根据当前子三角面片对应的三角面片信息,判断当前子三角面片与剩余的以非流形边为共同边的子三角面片的位置关系,根据这些位置关系将剩余的以非流形边为共同边的子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合。
进一步地,将与当前子三角面片共面、且顶点位置方向相同的子三角面片分类至正向共面集合,将与当前子三角面片不共面、且顶点位置方向相同的子三角面片分类至正向集合,将与当前子三角面片共面、且顶点位置方向相反的子三角面片分类至反向共面集合,将与当前子三角面片不共面、且顶点位置方向相反的子三角面片分类至反向集合。其中,顶点位置方向由不位于非流形边上的顶点决定。
再选取正向集合中的一个子三角面片(可选取正向集合中的第一个子三角面片),根据该选取的子三角面片与正向集合中剩余的子三角面片之间的位置关系,将正向集合中剩余的子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合。对反向集合中的子三角面片也进行同样的分类操作。如此,对每次分类得到的正向集合、反向集合进行递归分类,直至最后分类到的正向集合和反向集合中都仅剩一个子三角面片。再依据递归分类得到的子三角面片之间的位置关系,获得所有以非流形边为共同边的子三角面片之间的位置关系,从而通过递归方式有效地提高子三角面片之间位置关系确定的效率。
在一个实施例中,在判断当前子三角面片与第一子三角面片的位置关系时,由于子三角面片对应的三角面片信息为相应三角面片的顶点索引集合,可以根据当前子三角面片对应的三角面片信息和非流形边,确定当前子三角面片上预设顶点在相应三角面片上对应的顶点,可以根据第一子三角面片对应的三角面片信息确定第一子三角面片对应的三角面片。通过判断该预设顶点在三角面片上对应的顶点与第一子三角面片对应的三角面片之间的位置关系,得到该预设顶点与第一子三角面片之间的位置关系,即当前子三角面片与第一子三角面片之间的位置关系。从而避免依据子三角面片的顶点直接计算子三角面片之间的位置关系,提高子三角面片之间位置关系确定的准确度。预设顶点为当前子三角面片上与非流形边位置相对的顶点,第一子三角面片为剩余的以非流形边为共同边的任一子三角面片。
外轮廓确定模块308,用于根据三角面片之间的位置关系,确定三维模型的外轮廓。
在获得以非流形边为共同边的所有子三角面片之间的位置关系后,可通过预设算法在这些子三角面片中确定三维模型的外轮廓。
在一个实施例中,预设算法可采用卷绕数算法。
上述三维模型的外轮廓查找装置,在将相交的三角面片划分为子三角面片后,根据三维模型的点表生成子三角面片的三角面片信息,依据该三角面片信息和子三角面片中的非流形边,确定子三角面片之间的位置关系,而无需依据子三角面片的顶点坐标运算得到三角面片的交线和子三角面片之间的位置关系,从而在三维模型存在自相交现象时,降低了三维模型外轮廓查找的计算量,同时有效地提高了三维模型外轮廓查找的准确度。
关于三维模型的外轮廓查找装置的具体限定可以参见上文中对于三维模型的外轮廓查找方法的限定,在此不再赘述。上述三维模型的外轮廓查找装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储三维模型的点表和三维模型上各点的坐标等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种三维模型的外轮廓查找方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种三维模型处理设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取三维模型的点表和三维模型上相交的三角面片;
将每个三角面片划分为子三角面片,根据点表生成每个子三角面片对应的三角面片信息;
在子三角面片中查找非流形边,根据子三角面片对应的三角面片信息,确定以非流形边为共同边的子三角面片之间的位置关系;
根据子三角面片之间的位置关系,确定三维模型的外轮廓。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
从点表中获取三角面片上三个顶点的索引,由三角面片上三个顶点的索引构成三角面片的顶点索引集合;
将三角面片划分为子三角面片,并将三角面片的顶点索引集合设置为子三角面片对应的三角面片信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据三角面片上所有的点和边,将三角面片划分为子三角面片,并将子三角面片上的顶点存储至点表中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
从点表中获取子三角面片上三个顶点的索引,由子三角面片上三个顶点的索引构成子三角面片的顶点索引集合;
在子三角面片的顶点索引集合中,查找在两个以上子三角面片中出现的边。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在以非流形边为共同边的子三角面片中,根据子三角面片对应的三角面片信息,通过预设的递归方式确定子三角面片之间的位置关系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在以非流形边为共同边的子三角面片中,选取当前子三角面片;
根据当前子三角面片对应的三角面片信息,判断当前子三角面片与剩余的以非流形边为共同边的子三角面片的位置关系;
根据当前子三角面片与剩余的以非流形边为共同边的子三角面片的位置关系,将剩余的以非流形边为共同边的子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合;
依次对正向集合和反向集合进行递归分类,直至分类后的正向集合和反向集合都仅剩一个子三角面片。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据当前子三角面片对应的三角面片信息和非流形边,确定当前子三角面片上预设顶点在三角面片上对应的顶点;
根据第一子三角面片对应的三角面片信息,判断三角面片上对应的顶点与第一子三角面片对应的三角面片之间的位置关系,预设顶点为当前子三角面片上与非流形边位置相对的顶点,第一子三角面片为剩余的以非流形边为共同边的任一子三角面片。
上述三维模型处理设备,在将相交的三角面片划分为子三角面片后,根据三维模型的点表生成子三角面片的三角面片信息,依据该三角面片信息和子三角面片中的非流形边,确定子三角面片之间的位置关系,而无需依据子三角面片的顶点坐标运算得到三角面片的交线和子三角面片之间的位置关系,从而在三维模型存在自相交现象时,降低了三维模型外轮廓查找的计算量,同时有效地提高了三维模型外轮廓查找的准确度。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取三维模型的点表和三维模型上相交的三角面片;
将每个三角面片划分为子三角面片,根据点表生成每个子三角面片对应的三角面片信息;
在子三角面片中查找非流形边,根据子三角面片对应的三角面片信息,确定以非流形边为共同边的子三角面片之间的位置关系;
根据子三角面片之间的位置关系,确定三维模型的外轮廓。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从点表中获取三角面片上三个顶点的索引,由三角面片上三个顶点的索引构成三角面片的顶点索引集合;
将三角面片划分为子三角面片,并将三角面片的顶点索引集合设置为子三角面片对应的三角面片信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据三角面片上所有的点和边,将三角面片划分为子三角面片,并将子三角面片上的顶点存储至点表中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从点表中获取子三角面片上三个顶点的索引,由子三角面片上三个顶点的索引构成子三角面片的顶点索引集合;
在子三角面片的顶点索引集合中,查找在两个以上子三角面片中出现的边。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在以非流形边为共同边的子三角面片中,根据子三角面片对应的三角面片信息,通过预设的递归方式确定子三角面片之间的位置关系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在以非流形边为共同边的子三角面片中,选取当前子三角面片;
根据当前子三角面片对应的三角面片信息,判断当前子三角面片与剩余的以非流形边为共同边的子三角面片的位置关系;
根据当前子三角面片与剩余的以非流形边为共同边的子三角面片的位置关系,将剩余的以非流形边为共同边的子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合;
依次对正向集合和反向集合进行递归分类,直至分类后的正向集合和反向集合都仅剩一个子三角面片。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据当前子三角面片对应的三角面片信息和非流形边,确定当前子三角面片上预设顶点在三角面片上对应的顶点;
根据第一子三角面片对应的三角面片信息,判断三角面片上对应的顶点与第一子三角面片对应的三角面片之间的位置关系,预设顶点为当前子三角面片上与非流形边位置相对的顶点,第一子三角面片为剩余的以非流形边为共同边的任一子三角面片。
上述计算机可读存储介质,在将相交的三角面片划分为子三角面片后,根据三维模型的点表生成子三角面片的三角面片信息,依据该三角面片信息和子三角面片中的非流形边,确定子三角面片之间的位置关系,而无需依据子三角面片的顶点坐标运算得到三角面片的交线和子三角面片之间的位置关系,从而在三维模型存在自相交现象时,降低了三维模型外轮廓查找的计算量,同时有效地提高了三维模型外轮廓查找的准确度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种三维模型的外轮廓查找方法,其特征在于,所述方法包括:
获取三维模型的点表和所述三维模型上相交的三角面片;
将每个所述三角面片划分为子三角面片,根据所述点表生成每个所述子三角面片对应的三角面片信息;
在所述子三角面片中查找非流形边,根据所述子三角面片对应的三角面片信息,通过预设的递归方式确定以所述非流形边为共同边的所述子三角面片之间的位置关系;
根据所述子三角面片之间的位置关系,确定所述三维模型的外轮廓;
其中,通过预设的递归方式确定以所述非流形边为共同边的所述子三角面片之间的位置关系包括:
在以所述非流形边为共同边的所述子三角面片中,选取当前子三角面片;
根据所述当前子三角面片对应的三角面片信息,判断所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系;
根据所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系,将剩余的以所述非流形边为共同边的所述子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合;
依次对所述正向集合和所述反向集合进行递归分类,直至分类后的所述正向集合和所述反向集合都仅剩一个所述子三角面片。
2.根据权利要求1所述的方法,其特征在于,将每个所述三角面片划分为子三角面片,根据所述点表生成每个所述子三角面片对应的三角面片信息的步骤,包括:
从所述点表中获取所述三角面片上三个顶点的索引,由所述三角面片上三个顶点的索引构成所述三角面片的顶点索引集合;
将所述三角面片划分为所述子三角面片,并将所述三角面片的顶点索引集合设置为所述子三角面片对应的三角面片信息。
3.根据权利要求1所述的方法,其特征在于,将每个所述三角面片划分为子三角面片的步骤:包括
根据所述三角面片上所有的点和边,将所述三角面片划分为所述子三角面片,并将所述子三角面片上的顶点存储至所述点表中。
4.根据权利要求1所述的方法,其特征在于,在所述子三角面片中查找非流形边的步骤,包括:
从所述点表中获取所述子三角面片上三个顶点的索引,由所述子三角面片上三个顶点的索引构成所述子三角面片的顶点索引集合;
在所述子三角面片的顶点索引集合中,查找在两个以上所述子三角面片中出现的边。
5.根据权利要求1所述的方法,其特征在于,判断所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系的步骤,包括:
根据所述当前子三角面片对应的三角面片信息和所述非流形边,确定所述当前子三角面片上预设顶点在所述三角面片上对应的顶点;
根据第一子三角面片对应的三角面片信息,判断所述三角面片上对应的顶点与所述第一子三角面片对应的所述三角面片之间的位置关系,所述预设顶点为所述当前子三角面片上与所述非流形边位置相对的顶点,所述第一子三角面片为剩余的以所述非流形边为共同边的任一所述子三角面片。
6.一种三维模型的外轮廓查找装置,其特征在于,所述装置包括:
信息获取模块,用于获取三维模型的点表和所述三维模型上相交的三角面片;
面片划分模块,用于将每个所述三角面片划分为子三角面片,根据所述点表生成所述每个子三角面片对应的三角面片信息;
位置确定模块,用于在所述子三角面片中查找非流形边,根据所述子三角面片对应的三角面片信息,通过预设的递归方式确定以所述非流形边为共同边的所述三角面片之间的位置关系;以及
外轮廓确定模块,用于根据所述三角面片之间的位置关系,确定所述三维模型的外轮廓;
其中,通过预设的递归方式确定以所述非流形边为共同边的所述子三角面片之间的位置关系包括:
在以所述非流形边为共同边的所述子三角面片中,选取当前子三角面片;
根据所述当前子三角面片对应的三角面片信息,判断所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系;
根据所述当前子三角面片与剩余的以所述非流形边为共同边的所述子三角面片的位置关系,将剩余的以所述非流形边为共同边的所述子三角面片分类为正向集合、反向集合、正向共面集合和反向共面集合;
依次对所述正向集合和所述反向集合进行递归分类,直至分类后的所述正向集合和所述反向集合都仅剩一个所述子三角面片。
7.一种三维模型处理设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811009997.1A CN109360215B (zh) | 2018-08-31 | 2018-08-31 | 三维模型的外轮廓查找方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811009997.1A CN109360215B (zh) | 2018-08-31 | 2018-08-31 | 三维模型的外轮廓查找方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109360215A CN109360215A (zh) | 2019-02-19 |
CN109360215B true CN109360215B (zh) | 2021-03-23 |
Family
ID=65350379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811009997.1A Active CN109360215B (zh) | 2018-08-31 | 2018-08-31 | 三维模型的外轮廓查找方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109360215B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110153582B (zh) * | 2019-05-09 | 2020-05-19 | 清华大学 | 焊接方案生成方法、装置以及焊接系统 |
CN110992494B (zh) * | 2019-12-17 | 2023-08-25 | 米哈游科技(上海)有限公司 | 一种角色模型的消散方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7474803B2 (en) * | 2000-03-28 | 2009-01-06 | Enliven Marketing Technologies Corporation | System and method of three-dimensional image capture and modeling |
CN105225272A (zh) * | 2015-09-01 | 2016-01-06 | 成都理工大学 | 一种基于多轮廓线三角网重构的三维实体建模方法 |
CN106530397A (zh) * | 2016-10-13 | 2017-03-22 | 成都希盟泰克科技发展有限公司 | 一种基于稀疏剖面地质轮廓线的地质面三维重建方法 |
-
2018
- 2018-08-31 CN CN201811009997.1A patent/CN109360215B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7474803B2 (en) * | 2000-03-28 | 2009-01-06 | Enliven Marketing Technologies Corporation | System and method of three-dimensional image capture and modeling |
CN105225272A (zh) * | 2015-09-01 | 2016-01-06 | 成都理工大学 | 一种基于多轮廓线三角网重构的三维实体建模方法 |
CN106530397A (zh) * | 2016-10-13 | 2017-03-22 | 成都希盟泰克科技发展有限公司 | 一种基于稀疏剖面地质轮廓线的地质面三维重建方法 |
Non-Patent Citations (2)
Title |
---|
3D Finite Element Meshing from Imaging Data;Yongjie Zhang et al.;《Comput Methods Appl Mech Eng》;20051130;第5083–5106页 * |
基于隐式函数的曲面重构方法及其应用;莫堃;《中国博士学位论文全文数据库 信息科技辑》;20111015;第2011年卷(第10期);第I138-84页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109360215A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109931942B (zh) | 机器人路径生成方法、装置、机器人和存储介质 | |
CN110852949B (zh) | 点云数据补全方法、装置、计算机设备和存储介质 | |
CN110827202A (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
CN109360215B (zh) | 三维模型的外轮廓查找方法、装置、设备和存储介质 | |
CN113223078B (zh) | 标志点的匹配方法、装置、计算机设备和存储介质 | |
CN109886279A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN113793351B (zh) | 基于等高线的多层轮廓图案的激光填充方法及装置 | |
CN110544308A (zh) | 变电站建模方法、装置、计算机设备和存储介质 | |
CN115205450A (zh) | 三维扫描数据的处理方法、装置、系统、设备和介质 | |
CN115601774A (zh) | 表格识别方法、装置、设备、存储介质和程序产品 | |
CN111738233A (zh) | 文本检测方法、电子设备及计算机可读介质 | |
CN112464322A (zh) | 建筑构件排布方法、装置、计算机设备和存储介质 | |
CN113010570A (zh) | 电网设备矢量数据查询方法、装置、计算机设备和介质 | |
CN113724383A (zh) | 机器人拓扑地图生成系统、方法、计算机设备及存储介质 | |
CN110887490A (zh) | 一种激光定位导航的关键帧选取方法、介质、终端和装置 | |
CN114240976B (zh) | 一种地图迭代切分方法、装置、设备及存储介质 | |
CN110909097B (zh) | 多边形电子围栏生成方法、装置、计算机设备和存储介质 | |
WO2022141494A1 (zh) | 三维点云聚类方法、装置、计算机设备和存储介质 | |
CN111274421B (zh) | 图片数据清洗方法、装置、计算机设备和存储介质 | |
CN111060127B (zh) | 车辆起点定位方法、装置、计算机设备和存储介质 | |
CN110917624B (zh) | 路径确定方法、装置及设备 | |
CN111898654A (zh) | 三维对象特征获取方法、装置、计算机设备和存储介质 | |
CN109344545B (zh) | 建筑设计软件中构件尺寸的精确度调整方法、装置 | |
CN113178000A (zh) | 三维重建方法、装置、电子设备及计算机存储介质 | |
CN109490824B (zh) | 位置指纹信息匹配方法、装置、存储介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |