CN115880458A - 网格布尔运算方法、装置、电子设备和存储介质 - Google Patents
网格布尔运算方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115880458A CN115880458A CN202211590255.9A CN202211590255A CN115880458A CN 115880458 A CN115880458 A CN 115880458A CN 202211590255 A CN202211590255 A CN 202211590255A CN 115880458 A CN115880458 A CN 115880458A
- Authority
- CN
- China
- Prior art keywords
- mesh
- intersection point
- identification
- triangular mesh
- triangulation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 230000001133 acceleration Effects 0.000 claims description 34
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明实施例提供了一种网格布尔运算方法、装置、电子设备和存储介质。网格布尔运算方法包括:计算并得到第一闭合三角网格与第二闭合三角网格的交点;对交点进行交点类型判断,得到交点的判断结果;按照判断结果对应的处理方式,对交点所在的三角网格进行三角剖分处理,得到三角剖分网格;对第一闭合三角网格、第二闭合三角网格和三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;对第一标识网格、第二标识网格和三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。通过上述步骤,可以对交点所在的三角网格,根据不同的交点类型进行不同方式的三角剖分处理,进而加快布尔运算速度。
Description
技术领域
本发明实施例涉及计算机图形领域,尤其涉及一种网格布尔运算方法、装置、电子设备和存储介质。
背景技术
布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。由于布尔在符号逻辑运算中的特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,将其结果称为布尔值。
传统的网格布尔运算通过输入两个闭合的三角网格数据,然后通过交并补运算实现所需效果。但是在进行数据运算处理时,由于输入数据的复杂性,例如有些模型是不封闭的或者在模型规模较大时,会导致模型计算效率低。
发明内容
有鉴于此,本发明实施例提供一种网格布尔运算方法、装置、电子设备和存储介质,以至少部分解决上述问题。
根据本发明实施例的第一方面,提供了一种网格布尔运算方法,包括:计算并得到第一闭合三角网格与第二闭合三角网格的交点;对所述交点进行交点类型判断,得到所述交点的判断结果;按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
在本发明的另一实现方式中,所述计算并得到第一闭合三角网格与第二闭合三角网格的交点,包括:对所述第一闭合三角网格与第二闭合三角网格进行BVH结构处理,得到第一闭合三角网格BVH加速结构和第二闭合三角网格BVH加速结构;计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点。
在本发明的另一实现方式中,所述计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点,包括:计算所述第一闭合三角网格与所述第一闭合三角网格BVH加速结构的交点,得到第一交点;计算所述第二闭合三角网格与所述第二闭合三角网格BVH加速结构的交点,得到第二交点。
在本发明的另一实现方式中,所述方法还包括:根据第一交点,构建包含第一交点的第一三角面;根据第二交点,构建包含第二交点的第二三角面。
在本发明的另一实现方式中,所述对所述交点进行交点类型判断,得到所述交点的判断结果,包括:对所述第一交点和第二交点进行去重处理,得到第一去重交点和第二去重交点;对所述第一去重交点和第二去重交点进行交点类型判断,得到判断结果。
在本发明的另一实现方式中,所述按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格,包括:根据所述第一去重交点和所述第二去重交点,分别构建包含第一去重交点的第一去重三角面和包含第二去重交点的第二去重三角面;对所述判断结果符合第一交点类型的所述第一去重交点,按照第一三角剖分算法对所述第一去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第一去重交点,按照第二三角剖分算法对所述第一去重三角面进行剖分处理,得到第一剖分三角网格;对所述判断结果符合第一交点类型的所述第二去重交点,按照第一三角剖分算法对所述第二去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第二去重交点,按照第二三角剖分算法对所述第二去重三角面进行剖分处理,得到第二剖分三角网格。
在本发明的另一实现方式中,所述对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格,包括:对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格。
根据本发明实施例的第二方面,提供了一种网格布尔运算装置,包括:交点计算模块,用于计算并得到第一闭合三角网格与第二闭合三角网格的交点;交点类型判断模块,用于对所述交点进行交点类型判断,得到所述交点的判断结果;三角剖分模块,用于按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;标识处理模块,用于对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;布尔运算模块,用于对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
根据本发明实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如第一方面所述的方法对应的操作。
根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
在本发明实施例的方案中,计算并得到第一闭合三角网格与第二闭合三角网格的交点;对所述交点进行交点类型判断,得到所述交点的判断结果;按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。通过上述步骤,可以对交点所在的三角网格根据不同的交点类型进行不同方式的三角剖分处理,进而加快布尔运算速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为一个示例的网格布尔运算示意图。
图2A为根据本发明的一个实施例的网格布尔运算方法的步骤流程图。
图2B为根据本发明的一个实施例的网格布尔运算示意图。
图2C为根据本发明的一个实施例的网格布尔运算示意图。
图2D为根据本发明的一个实施例的网格布尔运算示意图。
图3为根据本发明的一个实施例的网格布尔运算装置的示意性框图。
图4为根据本发明的一个实施例的电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
图1为一个示例的网格布尔运算方法的示意图。本示例的网格布尔运算方法包括:将三角闭合网格Ma和三角闭合网格Mb输入至布尔运算模型;对三角闭合网格Ma和三角闭合网格Mb进行布尔运算,得到处理后的三角闭合网格。
上述示例的网格布尔运算方法可以对三角闭合网格进行计算,但输入数据的复杂性例如,有些三角网络是不封闭的,可能导致计算奔溃,此外在网格规模较大时,会导致模型计算速度很慢。
图2A示出了本发明的一个实施例的网格布尔运算方法的示例性流程。本实施例的网格布尔运算方法包括:
S210:计算并得到第一闭合三角网格与第二闭合三角网格的交点。
需要说明的是,此处的三角网格是多边形网格的一种,是计算机图形学中用于为各种不规则物体建立模型的一种数据结构。
S220:对所述交点进行交点类型判断,得到所述交点的判断结果。
S230:按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格。
S240:对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格。
S250:对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
需要说明的是,此处的布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。通过对两个以上的物体进行并集、差集、交集的运算,从而得到新的物体形态。常见布尔运算方式:Union(并集)、Intersection(交集)和Subtraction(差集,包括A-B和B-A两种)。
在本发明实施例的方案中,计算并得到第一闭合三角网格与第二闭合三角网格的交点;对所述交点进行交点类型判断,得到所述交点的判断结果;按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。通过上述步骤,可以对交点所在的三角网格根据不同的交点类型进行不同方式的三角剖分处理,进而加快布尔运算速度。
在一种可能的实现方式中,所述计算并得到第一闭合三角网格与第二闭合三角网格的交点,包括:对所述第一闭合三角网格与第二闭合三角网格进行BVH结构处理,得到第一闭合三角网格BVH加速结构和第二闭合三角网格BVH加速结构;计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点。
需要说明的是,此处的BVH加速结构指的是Bounding Volume Hierarchy(BVH)即层次包围体,在BVH中,所有的几何物体都会被包在Bounding Volume的叶子节点里面,Bounding Volume外面继续包着一个更大的Bounding Volume,递归地包裹下去,最终形成的根节点会包裹着整个场景。常用于碰撞检测和光线追踪的加速,能够将时间复杂度降低到关于物体数量的对数级别。
具体地,可以将第一闭合三角网格与第二闭合三角网格输入至图形处理器中,对第一闭合三角网格与第二闭合三角网格进行BVH数据处理,得到第一闭合三角网格BVH加速结构和第二闭合三角网格BVH加速结构。通过上述方式,可以提高布尔运算处理效率。
在一种可能的实现方式中,所述计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点,包括:计算所述第一闭合三角网格与所述第一闭合三角网格BVH加速结构的交点,得到第一交点;计算所述第二闭合三角网格与所述第二闭合三角网格BVH加速结构的交点,得到第二交点。
需要说明的是,如图2B所示,在计算两个闭合三角网格的交点时,如果只用阴影三角面片三条边来计算是否与透明三角面片有交点,是得不到交点的,此时必须用透明三角面片的三条边来与阴影三角面片求交点才可以得到两个交点。为了全面的计算出两个闭合三角网格的交点,可以通过计算所述第一闭合三角网格与所述第一闭合三角网格BVH加速结构的交点,得到第一交点;计算所述第二闭合三角网格与所述第二闭合三角网格BVH加速结构的交点,得到第二交点。
具体地,可以计算第一闭合三角网格中每条边与第二闭合三角网格BVH加速结构的交点,得出第一交点;计算第二闭合三角网格中每条边与第一闭合三角网格BVH加速结构的交点,得出第二交点。通过上述方式,可以全面计算出闭合三角网格的交点。
在一种可能的实现方式中,所述方法还包括:根据第一交点,构建包含第一交点的第一三角面;根据第二交点,构建包含第二交点的第二三角面。通过上述方式,可以提高三角面处理效率。
在一种可能的实现方式中,所述对所述交点进行交点类型判断,得到所述交点的判断结果,包括:对所述第一交点和第二交点进行去重处理,得到第一去重交点和第二去重交点;对所述第一去重交点和第二去重交点进行交点类型判断,得到判断结果。
需要说明的是,由于第一交点与第二交点可能存在重叠,因此,需要通过上述方式将交点中的重叠点去除,以提高三角剖分效率。
在一种可能的实现方式中,所述按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格,包括:根据所述第一去重交点和所述第二去重交点,分别构建包含第一去重交点的第一去重三角面和包含第二去重交点的第二去重三角面;对所述判断结果符合第一交点类型的所述第一去重交点,按照第一三角剖分算法对所述第一去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第一去重交点,按照第二三角剖分算法对所述第一去重三角面进行剖分处理,得到第一剖分三角网格;对所述判断结果符合第一交点类型的所述第二去重交点,按照第一三角剖分算法对所述第二去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第二去重交点,按照第二三角剖分算法对所述第二去重三角面进行剖分处理,得到第二剖分三角网格。
需要说明的是,此处的对所述判断结果符合第一交点类型的所述第一去重交点,按照第一三角剖分算法对所述第一去重三角面进行剖分处理指的是,对所述判断结果符合第一交点类型的所述第一去重交点,按照第一三角剖分算法对包含符合第一交点类型的所述第一去重交点的所述第一去重三角面进行剖分处理;其余剖分处理方式同理。例如,某三角面上的交点符合第一交点类型,则对该三角面按照第一三角剖分算法进行三角剖分处理。
优选地,可以对所述第一去重交点和所述第二去重交点进行排序,得到第一排序去重交点和第二排序去重交点;根据所述第一排序去重交点,构建包含所述第一排序去重交点的第一去重三角面;根据所述第二排序去重交点,构建包含所述第二排序去重交点的第二去重三角面。
需要说明的是,此处对所述第一去重三角面进行剖分处理和对所述第一去重三角面进行剖分处理可以采用并行方式,同时对多个三角面进行剖分处理,进而提高三角剖分速率。
需要说明的是,如图2C所示,此处的第一类型交点指的是,交点构成的交线条数仅有一条且与三角面的两边相连接,此处的第二类型交点指的是第一类型交点外的其他类型交点。此处的第一三角剖分算法指的是根据交点和交点所在三角面的顶点直接进行剖分的剖分算法,此处的第二三角剖分算法指的是先对交点进行拓扑处理,再根据拓扑处理后的交点进行剖分的剖分算法。
例如,如图2D所示,第二三角剖分算法具体可以为:对于三角面片ABC,其内部有两条交线分别是p1p2和q1q2,将每个在边上的交点p1、p2、q1,q2垂直于所在边往内部移动一个微小距离(如1e-6,距离可以不相等),记录移动后的点集和ABC三个顶点构建边界点集合Co={A、B、C、p1’、p2’、q1’、q2’},集合C0再加上内部点,使用Delaunay三角剖分方法对点集进行三角剖分,得到点之间的拓扑关系集合cells,遍历拓扑关系集合,查看每个三角面片顶点是否都属于Co,如果属于则删除,得到最终拓扑关系集合cells1,然后将拓扑关系集合中的移动的点还原,得到了最终剖分后的数据。
通过上述方式,可以根据交点类型对交点所在三角面进行剖分处理,有效提高三角剖分处理效率。
在一种可能的实现方式中,所述对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格,包括:对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格。
需要说明的是,由于在布尔运算差集运算中,包括第一闭合三角网格-第二闭合三角网格和第二闭合三角网格和-第一闭合三角网格两种运算,为了区分两种运算方式,可以对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格进行标识处理。
具体地,可以基于第一闭合三角网格BVH加速结构和第二闭合三角网格BVH加速结构对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格进行运算方式判断,并对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格中的三角面进行运算标识处理。
图3为根据本发明的另一实施例的网格布尔运算装置的示意性框图。本发明实施例的方案可以应用于电子设备,包括但不限于:具有通信功能的终端设备或具有交互行为能力的电子设备等。
本实施例的网格布尔运算装置,包括:交点计算模块,用于计算并得到第一闭合三角网格与第二闭合三角网格的交点;交点类型判断模块,用于对所述交点进行交点类型判断,得到所述交点的判断结果;三角剖分模块,用于按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;标识处理模块,用于对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;布尔运算模块,用于对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
在另一些示例中,交点计算模块,具体用于:对所述第一闭合三角网格与第二闭合三角网格进行BVH结构处理,得到第一闭合三角网格BVH加速结构和第二闭合三角网格BVH加速结构;计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点。
在另一些示例中,交点计算模块,具体用于:计算所述第一闭合三角网格与所述第一闭合三角网格BVH加速结构的交点,得到第一交点;计算所述第二闭合三角网格与所述第二闭合三角网格BVH加速结构的交点,得到第二交点。
在另一些示例中,交点计算模块,具体用于:根据第一交点,构建包含第一交点的第一三角面;根据第二交点,构建包含第二交点的第二三角面。在另一些示例中,交点类型判断模块,具体用于:对所述第一交点和第二交点进行去重处理,得到第一去重交点和第二去重交点;对所述第一去重交点和第二去重交点进行交点类型判断,得到判断结果。
在另一些示例中,三角剖分模块,具体用于:根据所述第一去重交点和所述第二去重交点,分别构建包含第一去重交点的第一去重三角面和包含第二去重交点的第二去重三角面;对所述判断结果符合第一交点类型的所述第一去重交点,按照第一三角剖分算法对所述第一去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第一去重交点,按照第二三角剖分算法对所述第一去重三角面进行剖分处理,得到第一剖分三角网格;对所述判断结果符合第一交点类型的所述第二去重交点,按照第一三角剖分算法对所述第二去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第二去重交点,按照第二三角剖分算法对所述第二去重三角面进行剖分处理,得到第二剖分三角网格。
在另一些示例中,标识处理模块,具体用于:对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格。
参照图4,示出了根据本发明的另一实施例的电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储有程序410的存储器(memory)406、以及通信总线408。
处理器、通信接口、以及存储器通过通信总线完成相互间的通信。通信接口,用于与其它电子设备或服务器进行通信。处理器,用于执行程序,具体可以执行上述方法实施例中的相关步骤。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序具体可以用于使得处理器执行操作:计算并得到第一闭合三角网格与第二闭合三角网格的交点;对所述交点进行交点类型判断,得到所述交点的判断结果;按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种网格布尔运算方法,包括:
计算并得到第一闭合三角网格与第二闭合三角网格的交点;
对所述交点进行交点类型判断,得到所述交点的判断结果;
按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;
对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;
对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
2.根据权利要求1所述的方法,其中,所述计算并得到第一闭合三角网格与第二闭合三角网格的交点,包括:
对所述第一闭合三角网格与第二闭合三角网格进行BVH结构处理,得到第一闭合三角网格BVH加速结构和第二闭合三角网格BVH加速结构;
计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点。
3.根据权利要求2所述的方法,其中,所述计算并得到所述第一闭合三角网格BVH加速结构和所述第二闭合三角网格BVH加速结构的交点,包括:
计算所述第一闭合三角网格与所述第一闭合三角网格BVH加速结构的交点,得到第一交点;
计算所述第二闭合三角网格与所述第二闭合三角网格BVH加速结构的交点,得到第二交点。
4.根据权利要求3所述的方法,其中,所述方法还包括:
根据第一交点,构建包含第一交点的第一三角面;根据第二交点,构建包含第二交点的第二三角面。
5.根据权利要求4所述的方法,其中,所述对所述交点进行交点类型判断,得到所述交点的判断结果,包括:
对所述第一交点和第二交点进行去重处理,得到第一去重交点和第二去重交点;
对所述第一去重交点和第二去重交点进行交点类型判断,得到判断结果。
6.根据权利要求5所述的方法,其中,所述按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格,包括:
根据所述第一去重交点和所述第二去重交点,分别构建包含第一去重交点的第一去重三角面和包含第二去重交点的第二去重三角面;
对所述判断结果符合第一交点类型的所述第一去重交点,按照第一三角剖分算法对所述第一去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第一去重交点,按照第二三角剖分算法对所述第一去重三角面进行剖分处理,得到第一剖分三角网格;
对所述判断结果符合第一交点类型的所述第二去重交点,按照第一三角剖分算法对所述第二去重三角面进行剖分处理,并对所述判断结果符合第二交点类型的所述第二去重交点,按照第二三角剖分算法对所述第二去重三角面进行剖分处理,得到第二剖分三角网格。
7.根据权利要求6所述的方法,其中,所述对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格,包括:
对所述第一闭合三角网格、所述第二闭合三角网格、第一剖分三角网格和第二剖分三角网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格。
8.一种网格布尔运算装置,包括:
交点计算模块,用于计算并得到第一闭合三角网格与第二闭合三角网格的交点;
交点类型判断模块,用于对所述交点进行交点类型判断,得到所述交点的判断结果;
三角剖分模块,用于按照所述判断结果对应的处理方式,对所述交点所在的三角网格进行三角剖分处理,得到三角剖分网格;
标识处理模块,用于对所述第一闭合三角网格、所述第二闭合三角网格和所述三角剖分网格进行标识处理,得到第一标识网格、第二标识网格和三角剖分标识网格;
布尔运算模块,用于对所述第一标识网格、所述第二标识网格和所述三角剖分标识网格进行布尔运算处理,得到布尔运算结果网格。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的方法对应的操作。
10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211590255.9A CN115880458A (zh) | 2022-12-12 | 2022-12-12 | 网格布尔运算方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211590255.9A CN115880458A (zh) | 2022-12-12 | 2022-12-12 | 网格布尔运算方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115880458A true CN115880458A (zh) | 2023-03-31 |
Family
ID=85767076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211590255.9A Pending CN115880458A (zh) | 2022-12-12 | 2022-12-12 | 网格布尔运算方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115880458A (zh) |
-
2022
- 2022-12-12 CN CN202211590255.9A patent/CN115880458A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113724401A (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
CN110826122B (zh) | 一种核电三维布置设计模型体素化方法及系统 | |
Jiang et al. | Convolutional neural networks on non-uniform geometrical signals using euclidean spectral transformation | |
CN112825199A (zh) | 碰撞检测方法、装置、设备及存储介质 | |
CN114119939A (zh) | 数据轻量化处理方法、装置、存储介质及电子设备 | |
CN117593486A (zh) | 一种基于空间粒子的网格重构方法和装置 | |
CN110929435B (zh) | 3d打印中的圈闭支撑区域的空间感知检测 | |
CN115346005B (zh) | 基于嵌套包围盒概念用于物面网格的数据结构构建方法 | |
CN115880458A (zh) | 网格布尔运算方法、装置、电子设备和存储介质 | |
CN111768353A (zh) | 一种三维模型的孔洞填补方法及装置 | |
CN116258840A (zh) | 层级细节表示树的生成方法、装置、设备及存储介质 | |
CN116229116A (zh) | 一种基于相似零件的工艺复用加工方法、系统及电子设备 | |
CN110738669A (zh) | 自适应八叉树分割算法 | |
CN115481268A (zh) | 一种平行线墙体数据识别方法、装置、设备及存储介质 | |
WO2022148075A1 (zh) | 一种虚拟对象的分簇方法、装置、存储介质和电子装置 | |
Khanban et al. | Computability of partial Delaunay triangulation and Voronoi diagram | |
Bevilacqua et al. | An evolutionary optimization method for parameter search in 3d points cloud reconstruction | |
US10977861B1 (en) | Inferring quality in point cloud-based three-dimensional objects using topographical data analysis | |
Sabharwal et al. | A Fast Intersection Detection Algorithm for Qualitative Spatial Reasoning. | |
Tran et al. | A complete method for reconstructing an elevation surface of 3D point clouds | |
CN117893712B (zh) | 一种表面结构网格生成方法和装置 | |
Hwang et al. | A Fast 3-D Visualization Methodology Using Characteristic Views of Objects | |
CN113448667B (zh) | 一种生成展示关系图的方法及装置 | |
US20240144419A1 (en) | Systems, methods, and media for determining a stopping condition for model decimation | |
CN114119708A (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 |