基于大型BIM模型的框选方法及系统与流程

文档序号:12472214阅读:387来源:国知局
基于大型BIM模型的框选方法及系统与流程

本发明涉及建筑信息模型及计算机图形学领域,具体地,涉及基于大型BIM模型的框选方法和系统。



背景技术:

计算机图形学是利用计算机研究图形的表示、生成、处理、显示的相关原理与算法。要在计算机中表示一个三维物体,首先要有它的几何模型表达。因此,三维模型的建模是计算机图形学的基础,是其他内容的前提。表达一个几何物体可以是用数学上的样条函数或隐式函数来表达;也可以是用光滑曲面上的采样点及其连接关系所表达的三角网格来表达(即连续曲面的分片线性逼近)。

BIM是Building Information Modeling的缩写,国内通常将其翻译为建筑信息模型。是一种建筑全生命周期信息化管理技术,具有可视化、协调性、模拟性、优化性和可出图五大特点。BIM是一种全新的建筑设计、施工、管理方法,以三维数字信息技术为基础,将规划、设计、建造、运营等各阶段的数据资料全部包含在3D模型之中,让建筑物整个生命周期中任何阶段的工作人员在使用该模型时,都能根据精确完整的数据做出有效、正确的决策。

传统技术采用构建选框碰撞体利用物理引擎碰撞得到选中对象,由于对物理引擎的完全依赖,在模型对象数量极大的情况下速度不甚理想。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于大型BIM模型的框选方法和系统。

根据本发明提供的一种基于大型BIM模型的框选方法,包括:

选框椎体计算步骤:框选以后,利用选框分别与相机近平面、远平面的交点,得到选框锥体的各平面;

包围盒判断步骤:在BIM模型中,提取包围盒在选框椎体内的对象;

检查步骤:对于包围盒在选框椎体内的对象,检查对象网格的第一个点屏幕投影是否在选框内,若在选框内,则选中对象,否则,则将对象放入设定层内准备碰撞;

网格碰撞体建立步骤:计算选框锥体的顶点以及选框锥体偏移后的顶点,建立选框锥体各面的网格,分别添加网格碰撞体;其中,选框锥体在偏移后形成厚度;

碰撞步骤:将网格碰撞体与包围盒在选框椎体内的对象进行碰撞,将碰撞结果符合设定要求的对象设为选中;

合并框选结果步骤:将在检查步骤中得到的选中对象与碰撞步骤中选中的对象合并为框选结果。

优选地,还包括:

恢复步骤:恢复BIM模型的全部层为默认层。

优选地,所述选框锥体各面的网格,包括选框锥体上、下、左、右、前五个面的网格。

优选地,所述包围盒在选框椎体内,是指包围盒被包含在选框椎体内以及包围盒的一部分位于选框椎体内。

根据本发明提供的一种基于大型BIM模型的框选系统,包括:

选框椎体计算装置:框选以后,利用选框分别与相机近平面、远平面的交点,得到选框锥体的各平面;

包围盒判断装置:在BIM模型中,提取包围盒在选框椎体内的对象;

检查装置:对于包围盒在选框椎体内的对象,检查对象网格的第一个点屏幕投影是否在选框内,若在选框内,则选中对象,否则,则将对象放入设定层内准备碰撞;

网格碰撞体建立装置:计算选框锥体的顶点以及选框锥体偏移后的顶点,建立选框锥体各面的网格,分别添加网格碰撞体;其中,选框锥体在偏移后形成厚度;

碰撞装置:将网格碰撞体与包围盒在选框椎体内的对象进行碰撞,将碰撞结果符合设定要求的对象设为选中;

合并框选结果装置:将在检查装置中得到的选中对象与碰撞装置中选中的对象合并为框选结果。

优选地,还包括:

恢复装置:恢复BIM模型的全部层为默认层。

优选地,所述选框锥体各面的网格,包括选框锥体上、下、左、右、前五个面的网格。

优选地,所述包围盒在选框椎体内,是指包围盒被包含在选框椎体内以及包围盒的一部分位于选框椎体内。

与现有技术相比,本发明具有如下的有益效果:

本发明利用多次预筛选,将需要检测碰撞的对象数量降到最低,提高了对大型BIM模型的框选速度,并且本发明合理筛出了大量选框外物体,以极低代价选出选框完全包含的对象,大幅减少了需要利用物理引擎检测的碰撞。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明提供的基于大型BIM模型的框选方法的步骤流程图。

图2为本发明提供的基于大型BIM模型的框选系统的结构示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种基于大型BIM模型的框选方法,包括:

选框椎体计算步骤:框选以后,利用选框分别与相机近平面、远平面的交点,得到选框锥体的各平面;

包围盒判断步骤:在BIM模型中,提取包围盒在选框椎体内的对象;

检查步骤:对于包围盒在选框椎体内的对象,检查对象网格的第一个点屏幕投影是否在选框内,若在选框内,则选中对象,否则,则将对象放入设定层内准备碰撞;

网格碰撞体建立步骤:计算选框锥体的顶点以及选框锥体偏移后的顶点,建立选框锥体各面的网格,分别添加网格碰撞体;其中,选框锥体在偏移后形成厚度;

碰撞步骤:将网格碰撞体与包围盒在选框椎体内的对象进行碰撞,将碰撞结果符合设定要求的对象设为选中;

合并框选结果步骤:将在检查步骤中得到的选中对象与碰撞步骤中选中的对象合并为框选结果。

进一步地,还包括:

恢复步骤:恢复BIM模型的全部层为默认层。

进一步地,所述选框锥体各面的网格,包括选框锥体上、下、左、右、前五个面的网格。

进一步地,所述包围盒在选框椎体内,是指包围盒被包含在选框椎体内以及包围盒的一部分位于选框椎体内。

选框选取原理如下:

(1)在屏幕中进行框选时,对应三维空间的选中范围实际为包含于相机视锥体的一个锥体(六个面),该锥体的六个平面可通过选框在相机近平面和远平面的对应点来构建。对于模型中的每一个可选择的对象,使用它的AABB包围盒可判断出它是否位于该锥体内部或与锥体相交,将包围盒完全位于锥体外的对象直接筛出。

(2)此时已经排除掉部分完全在选框外的对象,但由于框选基于其网格而非包围盒,这些对象仍可分为三种:①包含:此对象网格的所有点位于选框内,为选中对象;②排除:此对象网格的所有点位于选框外,为未选中对象;③相交:此对象网格部分点位于选框内,为选中对象。

(3)为了减轻后续负担,首先处理包含情况。易知对于包含的对象,取任意点都应位于选框内,因此只需测试每个备选对象的网格第一个点即可得到所有包含对象。需要注意的是,该测试结果还包括了部分相交对象,但由于包含与相交对象都是选中对象,无需进行后续处理,均归入选中列表即可。其中,网格中的各点通过数组存储,按照数组中元素的序列,将序列开头的元素对应的点作为网格第一个点。

(4)若此时已无剩余的对象则可直接返回选取结果,否则应在剩余对象中求得相交物体,而这些对象与选框在三维空间中对应的锥体相交。由于一般情况下主相机的远平面足够远,此处只考虑选框的前、左、右、上、下五个平面。将选框在三维空间中的这五个边界面用网格画出并附加网格碰撞器,利用物理引擎与备选对象进行碰撞。碰撞到的物体即为相交对象。将相交对象加入选中列表,得到完整的框选列表,此时选取结束。

在本发明的一个具体实施方式中,利用Unity 3D实现框选步骤,包括:

(1)框选以后,利用选框与相机近平面、远平面的交点,计算选框锥体的六个平面;

(2)利用函数TestPlaneAABB检查每个对象的包围盒是否在选框锥体内;

(3)对于在锥体内的对象,检查网格的第一个点屏幕投影是否在选框内,若在选框内,则对象被选中,否则放入设定层内准备碰撞;

(4)计算选框锥体的8个顶点(近平面与远平面一共8个顶点转换成世界坐标)以及偏移的8个顶点(物理碰撞需要一定厚度并且不能太薄),建立锥体上、下、左、右、前五个面的网格,分别添加网格碰撞体;

(5)步骤(4)中生成的碰撞体与步骤(3)中筛选的对象进行碰撞,从碰撞器的OnTriggerEnter得到碰撞结果的对象设为选中;

(6)步骤(3)和步骤(5)中得到的物体合并为框选结果;

(7)恢复全部模型的层为默认层。

根据本发明提供的一种基于大型BIM模型的框选系统,包括:

选框椎体计算装置:框选以后,利用选框分别与相机近平面、远平面的交点,得到选框锥体的各平面;

包围盒判断装置:在BIM模型中,提取包围盒在选框椎体内的对象;

检查装置:对于包围盒在选框椎体内的对象,检查对象网格的第一个点屏幕投影是否在选框内,若在选框内,则选中对象,否则,则将对象放入设定层内准备碰撞;

网格碰撞体建立装置:计算选框锥体的顶点以及选框锥体偏移后的顶点,建立选框锥体各面的网格,分别添加网格碰撞体;其中,选框锥体在偏移后形成厚度;

碰撞装置:将网格碰撞体与包围盒在选框椎体内的对象进行碰撞,将碰撞结果符合设定要求的对象设为选中;

合并框选结果装置:将在检查装置中得到的选中对象与碰撞装置中选中的对象合并为框选结果。

进一步地,还包括:

恢复装置:恢复BIM模型的全部层为默认层。

进一步地,所述选框锥体各面的网格,包括选框锥体上、下、左、右、前五个面的网格。

进一步地,所述包围盒在选框椎体内,是指包围盒被包含在选框椎体内以及包围盒的一部分位于选框椎体内。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1