本发明为涉及船舶行业的一种提升船舶三维模型载入效率的方法,属于船舶数字化设计制造技术中的可视化管理。
背景技术:
1、随着计算机信息技术的飞速发展,海运船舶方面逐渐引入计算机信息技术与数据管理系统,以提高运输效率、优化航线规划和保障航运安全。aveva marine软件作为一种强大的船舶设计类软件,在船舶设计领域有着非常广泛的应用。用于设计、建造船舶和海工项目的集成软件,采用以对象为中心的技术,提供一系列解决方案、加载项以及单机版应用程序所构成的产品组合,贯穿造船业务过程中的每个环节。
2、通常我们使用aveva marine软件进行船舶的模型设计,通过aveva marine软件可以导出rvm格式的模型文件,而rvm格式的模型文件也可以转换为其他三维格式的文件,以供给用户渲染生成直观的三维立体模型。而在aveva marine软件导出rvm格式的文件时,一般按船体分段或舾装区域划分为单位进行导出,可以在导出后将所有数据合并为一个文件。但一条船舶的零件数量非常大,大约为几十甚至上百万个。然而很少有3d引擎能够支持同时渲染百万个零件,我们常常只渲染需要查看的部分。
3、如果按分段、舾装区域划分等为单位将整船内部的所有零件储存到一个文件内,这个文件内模型文件的数量约为几百至上千个,同样存在文件体积过大,传输耗时间过长的问题。然而不管是以分段、舾装区域划分还是以整船为单位导出并储存模型文件,都将会导致在网络平台中模型的加载效率不高。例如将整船所有零件的三维数据储存在一个文件内,那么该文件的体积就会非常大。对于一次性浏览全船模型是有利的,但如需查看局部模型仍需等待全船文件加载完后才能查看,由于网络传输的问题耗时时间较长。另外,如果我们按零件为单位将整船每个零件的三维数据单独存为一个文件。此时若浏览数量达到千量级时,由于受客户端网络请求并发量的限制,反而容易导致性能的急剧下降。因此,亟需一种提升船舶三维模型载入效率的方法,用于提升用户浏览船舶模型数量较少和较多时的模型载入效率。
技术实现思路
1、本技术的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本技术的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
2、针对现有技术中存在的问题与不足,本发明目的在于提供一种提升船舶三维模型载入效率的方法,通过将从am软件平台中导出的rvm格式模型文件解析重新构建新模型树,遍历新模型树以船体结构设备为单位进行分组合并,分组后组内的零件模型被同时浏览的概率得到提高,且文件体积减小、组内零件模型数量适中,因而能够兼顾浏览模型数量较少和较多时的载入性能。以解决上述背景技术中提出的问题。
3、为实现上述目的,本发明提供如下技术方案:
4、作为本技术的第一方面,本发明公开一种提升船舶三维模型载入效率的方法,主要包括如下步骤:
5、步骤1,响应于从am软件中导出rvm格式模型,使用二次开发程序抽取其内部信息生成待解析文件;
6、步骤2,响应于解析rvm格式模型构建新模型树,遍历新模型树进行分组合并;
7、步骤3,响应于遍历合并后分组内零件模型名称,建立分组文件名与分组内零件模型名称的对应关系;
8、步骤4,响应于通过待解析文件构建新设计树,遍历新设计树匹配出其内部每个模型文件的路径地址并保存至数据表内;
9、步骤5,响应于依据分组文件名与分组内零件模型名称的对应关系,加载并渲染显示三维模型。
10、进一步的,在所述步骤2中,解析rvm格式模型构建新模型树,遍历新模型树进行分组合并,其包括以下步骤:
11、步骤2.1,按照所述rvm格式模型内模型文件的层级标识符重新构建所述新模型树;
12、步骤2.2,遍历所述新模型树以船体结构设备为单位对所述rvm格式文件进行分组,得到船体结构分组;
13、步骤2.3,依据所述船体结构分组内零件模型的数量进行合并。
14、进一步的,在所述步骤2.3中,依据分组后得到船体结构分组内的零件模型数量进行合并,其合并组的规则为:
15、将包含所述分组内的零件模型数量超过50个的船体结构分组保持不变;
16、将包含所述分组内的零件模型数量少于50个的船体结构分组进行合并;
17、将同一层级下的所述船体结构分组优先合并;
18、将每个所述船体结构分组内包含的零件模型数量在50个至100个的范围内。
19、进一步的,在所述步骤2中,解析所述rvm格式模型构建新模型树时,需将所述新模型树中的模型文件数据转换为更加贴近三维引擎能够直接渲染或建模的数据。
20、进一步的,在所述步骤3中,遍历合并后所述船体结构分组内零件模型,建立船体结构分组文件名与船体结构分组内零件模型名称的对应关系,并分别将所述船体结构分组文件名和所述船体结构分组内零件模型名称作为键值存入哈希集合中。
21、进一步的,在所述步骤4中,通过待解析文件构建新设计树,遍历新设计树匹配出其内部每个模型文件的路径地址并保存至数据表内,其包括以下步骤:
22、步骤4.1,通过所述待解析文件内的层级关系重新构建新设计树;
23、步骤4.2,将上所述新设计树与所述新模型树内的模型文件建立一一对应的关系;
24、步骤4.3,遍历所述新设计树内模型文件名称,从所述哈希集合中匹配出其对应的储存地址;
25、步骤4.4,将所述新设计树内模型文件名称与其对应储存地址保存至数据表内。
26、进一步的,在所述步骤5中,依据分组文件名与分组内零件模型名称的对应关系,加载并渲染显示三维模型,其包括以下步骤:
27、步骤5.1,读取待显示的模型名称,在数据表中查询其对应的模型文件地址;
28、步骤5.2,按所述模型文件地址对所述待显示的模型名称进行分组得到待渲染组;
29、步骤5.3,遍历所述待显示的模型名称,根据所述哈希集合中的键值对应找出所需渲染的模型名称;
30、步骤5.4,将所述待渲染组中出现所需渲染的模型名称进行渲染显示。
31、作为本技术的第二方面,本发明还公开一种电子设备,包括:
32、至少一个处理器,以及与所述至少一个处理器通信连接的存储器;
33、所述存储器上存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述提升船舶三维模型载入效率方法的步骤。
34、作为本技术的第三方面,本发明还公开一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述提升船舶三维模型载入效率方法的步骤。
35、与现有技术相比,本发明的有益效果为:
36、本发明提供的提升船舶三维模型载入效率的方法,能够兼顾浏览零件模型数量较少和较多时的载入性能,有效提升船舶三维模型的载入效率。通过从am软件中导出rvm格式模型,使用二次开发程序抽取其内部信息生成待解析文件。解析rvm格式模型构建新模型树,遍历新模型树进行分组合并。遍历合并后分组内零件模型名称,建立分组文件名与分组内零件模型名称的对应关系。通过待解析文件构建新设计树,遍历新设计树匹配出其内部每个模型文件的路径地址并保存至数据表内。依据分组文件名与分组内零件模型名称的对应关系,加载并渲染显示三维模型。本发明既能够避免体积较大文件网络传输时间长的问题,又能减少单个零件文件情况下的请求次数。又由于采用本发明后的文件体积较小,单个文件内包含的模型数量较少,因而能够提升浏览模型数量较少和较多时的载入效率。另外,新模型树分组内零件模型数量阈值可调节能力强,那么在下载等待与渲染之间产生不平衡时,只需调节每组零件模型数量的参数即可重新保持平衡。
1.一种提升船舶三维模型载入效率的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种提升船舶三维模型载入效率的方法,其特征在于,在所述步骤2中,解析rvm格式模型构建新模型树,遍历新模型树进行分组合并,其包括以下步骤:
3.根据权利要求2所述的一种提升船舶三维模型载入效率的方法,其特征在于,在所述步骤2.3中,依据分组后得到船体结构分组内的零件模型数量进行合并,其合并组的规则为:
4.根据权利要求3所述的一种提升船舶三维模型载入效率的方法,其特征在于:在所述步骤2中,解析所述rvm格式模型构建新模型树时,需将所述新模型树中的模型文件数据转换为更加贴近三维引擎能够直接渲染或建模的数据。
5.根据权利要求2所述的一种提升船舶三维模型载入效率的方法,其特征在于:在所述步骤3中,遍历合并后所述船体结构分组内零件模型,建立船体结构分组文件名与船体结构分组内零件模型名称的对应关系,并分别将所述船体结构分组文件名和所述船体结构分组内零件模型名称作为键值存入哈希集合中。
6.根据权利要求5所述的一种提升船舶三维模型载入效率的方法,其特征在于,在所述步骤4中,通过待解析文件构建新设计树,遍历新设计树匹配出其内部每个模型文件的路径地址并保存至数据表内,其包括以下步骤:
7.根据权利要求6所述的一种提升船舶三维模型载入效率的方法,其特征在于,在所述步骤5中,依据分组文件名与分组内零件模型名称的对应关系,加载并渲染显示三维模型,其包括以下步骤:
8.一种电子设备,其特征在于,包括:
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的步骤。