一种基于BSP树的布尔运算方法及系统与流程

文档序号:32426884发布日期:2022-12-03 00:06阅读:来源:国知局

技术特征:
1.一种基于bsp树的布尔运算方法,其特征在于,所述布尔运算方法包括:根据待设计的目标三维网格模型确定第一三维网格模型、第二三维网格模型和布尔运算方式;所述第一三维网格模型和所述第二三维网格模型通过所述布尔运算方式得到所述目标三维网格模型;所述布尔运算方式包括交集布尔运算、并集布尔运算和差集布尔运算;获取所述第一三维网格模型的第一三角形边界面列表和第一三角形边界顶点列表;获取所述第二三维网格模型的第二三角形边界面列表和第二三角形边界顶点列表;根据所述第一三角形边界面列表和所述第一三角形边界顶点列表建立所述第一三维网格模型的第一bsp树;根据所述第二三角形边界面列表和所述第二三角形边界顶点列表建立所述第二三维网格模型的第二bsp树;在建立所述第一bsp树和所述第二bsp树时,利用obb包围盒空间确定前n个超平面;利用所述第一bsp树的超平面对所述第二三角形边界面列表进行划分,得到第一内面集合和第一外面集合;利用所述第二bsp树的超平面对所述第一三角形边界面列表进行划分,得到第二内面集合和第二外面集合;利用所述布尔运算方式对所述第一内面集合、所述第一外面集合、所述第二内面集合和所述第二外面集合进行处理,得到所述目标三维网格模型。2.根据权利要求1所述的布尔运算方法,其特征在于,所述根据所述第一三角形边界面列表和所述第一三角形边界顶点列表建立所述第一三维网格模型的第一bsp树具体包括:以所述第一三角形边界面列表作为第一初始列表;判断迭代次数是否大于n;若否,则利用obb包围盒空间确定所述第一初始列表的超平面,计算所述第一初始列表中的每一个三角形面与所述超平面的位置关系,并根据所述位置关系将所述第一初始列表划分为位于所述超平面的前面的第一子列表、位于所述超平面的后面的第二子列表以及与所述超平面共面的第三子列表;若是,则在所述第一初始列表中随机选取一三角形面作为所述第一初始列表的超平面,计算所述第一初始列表中的每一个三角形面与所述超平面的位置关系,并根据所述位置关系将所述第一初始列表划分为位于所述超平面的前面的第一子列表、位于所述超平面的后面的第二子列表以及与所述超平面共面的第三子列表;以所述第一子列表和所述第二子列表作为下一迭代中的所述第一初始列表,返回“判断迭代次数是否大于n”的步骤,直至所述第一子列表只包括一个三角形面时,则结束所述第一子列表的迭代过程,所述第二子列表只包括一个三角形面时,则结束所述第二子列表的迭代过程;以所述第一三角形边界面列表的超平面作为根节点,将每一迭代中的所述第一子列表的超平面和所述第二子列表的超平面作为所述第一初始列表的超平面的叶节点,按照迭代次序依次连接各个节点得到第一bsp树。3.根据权利要求2所述的布尔运算方法,其特征在于,所述利用obb包围盒空间确定所述第一初始列表的超平面具体包括:将所述第一初始列表中的每一三角形面的顶点坐标按列排列,得到坐标矩阵,对所述坐标矩阵进行中心化,得到中心化后矩阵;计算所述中心化后矩阵的协方差矩阵,并对所述协方差矩阵进行特征值分解,得到特征向量矩阵;选取所述特征向量矩阵中的三个特征向
量作为obb包围盒空间的三个坐标轴的单位方向向量;将所述第一初始列表中的所有所述顶点坐标分别向所述三个坐标轴的单位方向向量进行投影,得到每一顶点在三个所述坐标轴上的坐标;对于每一所述坐标轴,选取所有所述顶点在所述坐标轴上的坐标的最大值和最小值,并计算所述最大值和所述最小值的差值,得到所述坐标轴对应的极差;根据三个所述坐标轴对应的极差计算所述obb包围盒空间的中心点坐标,并选取所述极差最大的坐标轴的单位方向向量作为超平面的方向向量,根据所述中心点坐标和所述超平面的方向向量确定所述第一初始列表的超平面。4.根据权利要求3所述的布尔运算方法,其特征在于,所述根据三个所述坐标轴对应的极差计算所述obb包围盒空间的中心点坐标具体包括:对于每一所述坐标轴,计算所述坐标轴对应的极差与2的比值,并计算所述比值与所述坐标轴的单位方向向量的乘积,得到所述坐标轴对应的坐标值;三个所述坐标轴对应的坐标值即组成所述obb包围盒空间的中心点坐标。5.根据权利要求2所述的布尔运算方法,其特征在于,所述计算所述第一初始列表中的每一个三角形面与所述超平面的位置关系具体包括:对于所述第一初始列表中的每一个三角形面,将所述三角形面的三个顶点坐标分别代入所述超平面的平面方程,得到三个方程值;所述方程值a=ap
x
+bp
y
+cp
z
+d;其中,a、b、c、d为所述超平面的平面方程ax+by+cz+d=0的参数,(p
x
,p
y
,p
z
)为所述顶点坐标;若三个所述方程值均大于0,或者,三个所述方程值两两相乘出现乘积为0且三个所述方程值中的非零项均大于0,则所述三角形面位于所述超平面的前面;若三个所述方程值均小于0,或者,三个所述方程值两两相乘出现乘积为0且三个所述方程值中的非零项均小于0,则所述三角形面位于所述超平面的后面;若三个所述方程值两两相乘出现乘积为0且非零项乘积均小于0,或者,三个所述方程值两两相乘乘积均不为0且有一非零项乘积小于0,则所述三角形面与所述超平面存在交线,根据所述交线将所述三角形面分为位于所述超平面的前面的第一三角形面和位于所述超平面的后面的第二三角形面;若三个所述方程值均等于0,则所述三角形面与所述超平面共面。6.根据权利要求2所述的布尔运算方法,其特征在于,所述利用所述第一bsp树的超平面对所述第二三角形边界面列表进行划分,得到第一内面集合和第一外面集合具体包括:选取所述第一bsp树的根节点对应的超平面作为初始超平面,以所述第二三角形边界面列表作为第二初始列表;利用所述初始超平面对所述第二初始列表进行划分,得到位于所述初始超平面的前面的第四子列表、位于所述初始超平面的后面的第五子列表以及与所述初始超平面共面的第六子列表;将所述第四子列表和利用所述初始超平面划分得到的第一子列表进行合并,得到第一合并列表;将所述第五子列表和利用所述初始超平面划分得到的第二子列表进行合并,得到第二合并列表;判断所述第一合并列表是否与所述第一子列表相同,若是,则删除所述第一合并列表,结束所述第一合并列表的迭代过程,若否,则以所述第一合并列表作为下一迭代中的所述第二初始列表,以所述第一子列表的超平面作为下一迭代中的所述初始超平面,返回“利用
所述初始超平面对所述第二初始列表进行划分”的步骤,直至所述第一子列表不具有超平面;判断所述第二合并列表是否与所述第二子列表相同,若是,则删除所述第二合并列表,结束所述第二合并列表的迭代过程,若否,则以所述第二合并列表作为下一迭代中的所述第二初始列表,以所述第二子列表的超平面作为下一迭代中的所述初始超平面,返回“利用所述初始超平面对所述第二初始列表进行划分”的步骤,直至所述第二子列表不具有超平面;将最后一次迭代得到的第一合并列表和第二合并列表合并,得到合并后列表,并在所述合并后列表中去除所述第二三角形边界面列表,得到第一内面集合;在所述第一三角形边界面列表中去除所述第一内面集合,得到第一外面集合。7.根据权利要求1所述的布尔运算方法,其特征在于,所述利用所述布尔运算方式对所述第一内面集合、所述第一外面集合、所述第二内面集合和所述第二外面集合进行处理,得到所述目标三维网格模型具体包括:若所述布尔运算方式为所述交集布尔运算,则计算所述第一内面集合和所述第二内面集合的和,得到所述目标三维网格模型;若所述布尔运算方式为所述并集布尔运算,则计算所述第一外面集合和所述第二外面集合的和,得到所述目标三维网格模型;若所述布尔运算方式为所述差集布尔运算,则计算所述第一外面集合和所述第二内面集合的和,得到所述目标三维网格模型。8.一种基于bsp树的布尔运算系统,其特征在于,所述布尔运算系统包括:确定模块,用于根据待设计的目标三维网格模型确定第一三维网格模型、第二三维网格模型和布尔运算方式;所述第一三维网格模型和所述第二三维网格模型通过所述布尔运算方式得到所述目标三维网格模型;所述布尔运算方式包括交集布尔运算、并集布尔运算和差集布尔运算;数据获取模块,用于获取所述第一三维网格模型的第一三角形边界面列表和第一三角形边界顶点列表;获取所述第二三维网格模型的第二三角形边界面列表和第二三角形边界顶点列表;bsp树建立模块,用于根据所述第一三角形边界面列表和所述第一三角形边界顶点列表建立所述第一三维网格模型的第一bsp树;根据所述第二三角形边界面列表和所述第二三角形边界顶点列表建立所述第二三维网格模型的第二bsp树;在建立所述第一bsp树和所述第二bsp树时,利用obb包围盒空间确定前n个超平面;划分模块,用于利用所述第一bsp树的超平面对所述第二三角形边界面列表进行划分,得到第一内面集合和第一外面集合;利用所述第二bsp树的超平面对所述第一三角形边界面列表进行划分,得到第二内面集合和第二外面集合;布尔运算模块,用于利用所述布尔运算方式对所述第一内面集合、所述第一外面集合、所述第二内面集合和所述第二外面集合进行处理,得到所述目标三维网格模型。

技术总结
本发明涉及一种基于BSP树的布尔运算方法及系统,属于计算机图形学技术领域。先根据待设计的目标三维网格模型确定第一三维网格模型、第二三维网格模型和布尔运算方式,然后建立第一三维网格模型的第一BSP树以及第二三维网格模型的第二BSP树,且在建立第一BSP树和第二BSP树时,利用OBB包围盒空间确定前N个超平面,再利用第一BSP树和第二BSP树进行互相划分,最后利用布尔运算方式进行处理,得到目标三维网格模型,从而在建立BSP树的过程中合理选取超平面,能够加速BSP树的建立过程,从而进一步提高三维模型的布尔运算速度。一步提高三维模型的布尔运算速度。一步提高三维模型的布尔运算速度。


技术研发人员:贺可太 李岩席 朱冬梅 孟晓伟 雷毅 刘爱军 邹小慧
受保护的技术使用者:北京数码大方科技股份有限公司
技术研发日:2022.08.09
技术公布日:2022/12/2
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1