一种基于BSP树的布尔运算方法及系统技术方案

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

【技术实现步骤摘要】
一种基于BSP树的布尔运算方法及系统


[0001]本专利技术涉及计算机图形学
,特别是涉及一种基于BSP树的布尔运算方法及系统。

技术介绍

[0002]在三维设计软件中建立三维模型时,三维模型是由基本体元之间进行交集、并集、差集三种布尔运算得到的,两个三维模型进行布尔运算可以得到一个具有更复杂形状的三维模型,而一个具有实际设计和使用意义的三维模型往往都具有复杂的特征形状。因此,对两个三维模型进行布尔运算是为了得到一个具有更多特征和更复杂形状的三维模型。但是在航空航天领域内,航天器械模型都拥有大量的特征,它们的三维网格模型都拥有庞大的三角面片集,而它们千万甚至亿级的面片集数量降低了运算的效率。在航天器械中,一般会有比较复杂的气体通路,在航天器械的模型中去除气体通路模型来生成气体通路(例如拉瓦尔喷嘴),这就会进行频繁的差集布尔运算。同时三维网格模型的布尔运算对运算的速度和稳定性有比较高的要求,为了加速三维网格模型的布尔运算,现有的技术体系内引入了包围体技术和空间剖分技术,而空间剖分技术加速效果较于前者更易实现。
[0003]BSP(B本文档来自技高网...

【技术保护点】

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:贺可太李岩席朱冬梅孟晓伟雷毅刘爱军邹小慧
申请(专利权)人:北京数码大方科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1