本发明涉及三维模型轻量化,具体地,涉及基于BIM的超大模型网格碰撞体加载识别方法及系统。
背景技术:
BIM中,设计模型是一种精确的边界描述(B-rep)模型,含有大量的几何信息,在现有的计算机软硬件条件下,使用设计模型直接建立大型复杂系统装配、维修仿真模型是不可能的,因此需要使用轻量化的模型建立仿真模型,以达到对仿真模型的快速交互、渲染。
现有技术中,在进行超大模型单个构件选择是要一个一个的去过滤构件,造成速度极慢,并且使用CPU和内存会非常多。
使用盒碰撞体法过滤构件虽然可以大大加快过滤速度但不是非常精确。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种基于BIM的超大模型网格碰撞体加载识别方法及系统。
根据本发明提供的一种基于BIM的超大模型网格碰撞体加载识别方法,包括:
标识号获取步骤:获取与盒碰撞体关联的构件标识号,记为关联标识号;
模型载入步骤:筛选出所述关联标识号对应的网络模型导入到三维引擎中;
射线生成步骤:设定起始点,以起始点作为端点,生成射线;
网格模型选取步骤:选取出第一个与射线相交的网络模型,记为保留网络模型;
网络模型卸载步骤:将所述保留网络模型之外的其它网络模型进行卸载。
优选地,所述与盒碰撞体关联的构件标识号,是指盒碰撞体所对应构件的构件标识号。
优选地,在射线生成步骤中,以起始点作为端点,沿垂直方向生成射线。
优选地,还包括盒碰撞体生成步骤;
所述盒碰撞体生成步骤,包括:
步骤A:获取构件的信息文件;
步骤B:将构件的信息文件导入三维引擎中,得到构件;
步骤C:在三维引擎中为每个构件生成对应的盒碰撞体;
步骤D:将构件的标识号关联到对应的盒碰撞体;
步骤E:将构件删除,得到盒碰撞体模型
根据本发明提供的一种基于BIM的超大模型网格碰撞体加载识别系统,其特征在于,包括:
标识号获取装置:获取与盒碰撞体关联的构件标识号,记为关联标识号;
模型载入装置:筛选出所述关联标识号对应的网络模型导入到三维引擎中;
射线生成装置:设定起始点,以起始点作为端点,生成射线;
网格模型选取装置:选取出第一个与射线相交的网络模型,记为保留网络模型;
网络模型卸载装置:将所述保留网络模型之外的其它网络模型进行卸载。
优选地,所述与盒碰撞体关联的构件标识号,是指盒碰撞体所对应构件的构件标识号。
优选地,在射线生成装置中,以起始点作为端点,沿垂直方向生成射线。
优选地,还包括盒碰撞体生成装置;
所述盒碰撞体生成装置,包括:
装置A:获取构件的信息文件;
装置B:将构件的信息文件导入三维引擎中,得到构件;
装置C:在三维引擎中为每个构件生成对应的盒碰撞体;
装置D:将构件的标识号关联到对应的盒碰撞体;
装置E:将构件删除,得到盒碰撞体模型。
与现有技术相比,本发明具有如下的有益效果:
本发明中,在盒碰撞体过滤法的基础上精确过滤出超大模型的单个构件。具体地,由于网格碰撞体模型是构件隔离的,即每个构件都有其独立的网格模型。所以在加载网格模型时,可以按照需要加载一部分的网格模型,这样就会加快加载时间,减轻加载模型时所消耗的内存。由于网格碰撞体完全还原了每个构件的模型,所以相比盒碰撞体,利用网格碰撞体就能精确的找出唯一的一个构件。而盒碰撞体只能用于粗略的过滤出一组可能的作为构件标识号的构件id。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为基于BIM的超大模型网格碰撞体加载识别方法的步骤流程图。
图2为基于BIM的超大模型网格碰撞体加载识别系统的结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于BIM的超大模型网格碰撞体加载识别方法,包括:
标识号获取步骤:获取与盒碰撞体关联的构件标识号,记为关联标识号;
模型载入步骤:筛选出所述关联标识号对应的网络模型导入到三维引擎中;
射线生成步骤:设定起始点,以起始点作为端点,生成射线;
网格模型选取步骤:选取出第一个与射线相交的网络模型,记为保留网络模型;
网络模型卸载步骤:将所述保留网络模型之外的其它网络模型进行卸载。
优选地,所述与盒碰撞体关联的构件标识号,是指盒碰撞体所对应构件的构件标识号。
优选地,在射线生成步骤中,以起始点作为端点,沿垂直方向生成射线。
优选地,还包括盒碰撞体生成步骤;
所述盒碰撞体生成步骤,包括:
步骤A:获取构件的信息文件;
步骤B:将构件的信息文件导入三维引擎中,得到构件;
步骤C:在三维引擎中为每个构件生成对应的盒碰撞体;
步骤D:将构件的标识号关联到对应的盒碰撞体;
步骤E:将构件删除,得到盒碰撞体模型
具体地,本发明的步骤包括:利用盒碰撞体过滤出相关的构件id;从所有的网格模型中载入关联文件名为过滤出的构件id的网格模型到Unity引擎中;用射线和载入的每个网格模型的网格碰撞体进行相交判断保留第一个和射线相交的网格模型;卸载其他网格模型。如没有任何相交网格模型,则卸载所有载入的网格模型。
根据本发明提供的一种基于BIM的超大模型网格碰撞体加载识别系统,其特征在于,包括:
标识号获取装置:获取与盒碰撞体关联的构件标识号,记为关联标识号;
模型载入装置:筛选出所述关联标识号对应的网络模型导入到三维引擎中;
射线生成装置:设定起始点,以起始点作为端点,生成射线;
网格模型选取装置:选取出第一个与射线相交的网络模型,记为保留网络模型;
网络模型卸载装置:将所述保留网络模型之外的其它网络模型进行卸载。
优选地,所述与盒碰撞体关联的构件标识号,是指盒碰撞体所对应构件的构件标识号。
优选地,在射线生成装置中,以起始点作为端点,沿垂直方向生成射线。
优选地,还包括盒碰撞体生成装置;
所述盒碰撞体生成装置,包括:
装置A:获取构件的信息文件;
装置B:将构件的信息文件导入三维引擎中,得到构件;
装置C:在三维引擎中为每个构件生成对应的盒碰撞体;
装置D:将构件的标识号关联到对应的盒碰撞体;
装置E:将构件删除,得到盒碰撞体模型。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。