用于超大体量BIM工程的轻量化处理方法及系统与流程
未命名
08-26
阅读:161
评论:0

用于超大体量bim工程的轻量化处理方法及系统
技术领域
1.本发明涉及建筑业信息技术领域,更具体地,涉及一种用于超大体量bim工程的轻量化处理方法及系统。
背景技术:
2.目前通常使用openctm格式对bim模型(即建筑信息模型,building information modeling)进行轻量化处理以得到bim轻量化模型,其主要是将三维模型中三角形顶点数据进行压缩存储,从而使得三维模型在浏览器中加载更加快速高效。openctm是一种用于三维模型压缩的开放式格式,其采用基于顶点的压缩方法,通过减少三维模型中的冗余数据来降低文件大小,同时还可以保留足够的信息来还原出原始模型。openctm格式支持多种语言和平台,已被广泛应用于游戏和虚拟现实领域。
3.当前端浏览器需要加载bim轻量化模型时,通过http协议获取经轻量化处理后的保存于后端服务器上的openctm格式数据,前端浏览器通过javascript代码并使用浏览器worker线程对openctm格式数据进行解析,从而还原出原始模型的顶点数据,根据解析的顶点数据重新生成三角形面片,并借助webgl技术(web graphics library)在浏览器中呈现bim模型。
4.然而在超大体量的bim工程项目中(例如:高铁站房工程项目),openctm格式压缩比不高,轻量化后压缩文件体积依然较大,在网络传输中需要耗费较长的时间;其次,由于模型体量大,轻量化后的openctm格式数据较多,进而造成每次加载bim轻量化模型时,都需要解析openctm格式的数据,对于查看模型的电脑和浏览器造成较大的运算负担,增加渲染显示模型前的计算时间;同时由于浏览器对于发送http请求是有数量限制的,当达到浏览器限制后,只有处理完在先的请求,才可以发起新的请求,这样对于数量较多的openctm格式数据,发送请求的等待时间也会较长,也大大延长了从打开浏览器网页到能看到渲染显示模型的时间。
5.因而,急需研发一种用于超大体量bim工程的轻量化处理方法及系统以高效的解决上述存在的一个或多个问题。
技术实现要素:
6.本发明的一个目的是提供一种用于超大体量bim工程的轻量化处理方法及系统的新技术方案。
7.根据本发明的第一方面,提供了一种用于超大体量bim工程的轻量化处理方法,所述方法包括:
8.步骤s1:从构件的bim模型中提取得到构件的几何数据;
9.步骤s2:利用draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将所述压缩文件存储至服务器中;
10.步骤s3:响应于浏览器的加载模型请求,使用javascript程序从所述服务器中获
取所述压缩文件;
11.步骤s4:使用webgl绘图程序对所述压缩文件进行处理以在浏览器中显示构件的轻量化bim模型。
12.可选地,所述步骤s1具体包括:
13.步骤s11:从构件的bim模型中提取得到构件的顶点坐标数据并存储到顶点数据数组中;
14.步骤s12:从构件的bim模型中提取得到构件的法线数据并存储到法线数据数组中;
15.步骤s13:从构件的bim模型中提取得到构件的纹理数据并存储到纹理数据数组中;
16.步骤s14:从构件的bim模型中提取得到构件的材质数据,并存储到材质数据数组中。
17.可选地,所述步骤s2具体包括:
18.步骤s21:利用所述draco图形压缩库的压缩算法对所述顶点数据数组、纹理数据数组以及材质数据数组中的数据进行压缩处理以得到所述压缩文件;
19.步骤s22:按照预设存储阈值对所述压缩文件进行分块处理得到bim模型分块数据包,以存储至所述服务器中,并生成相应的存储索引文件。
20.可选地,所述步骤s3具体包括:
21.步骤s31:接收浏览器的加载模型请求;
22.步骤s32:响应于浏览器的加载模型请求,使用javascript程序创建xmlhttprequest对象,并从所述服务器中下载所述存储索引文件;
23.步骤s33:解析下载的所述存储索引文件得到索引key;
24.步骤s34:如果通过所述索引key在浏览器的indexdb缓存中未查询到相应的bim模型分块数据包,则使用javascript程序创建的xmlhttprequest对象从所述服务器中获取相应的bim模型分块数据包,并转入步骤s36;
25.步骤s35:如果通过所述索引key在浏览器的indexdb缓存中查询到相应的bim模型分块数据包,则从浏览器的indexdb缓存中直接提取解码后的bim模型分块数据包;
26.步骤s36:利用draco图形压缩库的解码程序对bim模型分块数据包进行解析处理得到解码后的bim模型分块数据包。
27.可选地,所述步骤s36具体包括:
28.利用draco图形压缩库的解码程序在javascript程序中创建worker线程并解码bim模型分块数据包得到解码后的bim模型分块数据包;
29.将解码后的bim模型分块数据包发送给javascript主线程,并将解码后的bim模型分块数据包存储到浏览器的indexdb缓存中。
30.可选地,所述步骤s4具体为,使用webgl绘图程序从javascript主线程中读取解码后的bim模型分块数据包,并运行顶点着色器和片元着色器进行绘制,以在浏览器中显示构件的轻量化bim模型。
31.可选地,所述预设存储阈值为512kb。
32.根据本发明的第二方面,提供了一种用于超大体量bim工程的轻量化处理系统,所
述系统包括:
33.几何数据提取模块,被配置为从构件的bim模型中提取得到构件的几何数据;
34.图形压缩存储模块,被配置为利用draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将所述压缩文件存储至服务器中;
35.模型加载模块,被配置为响应于浏览器的加载模型请求,使用javascript程序从所述服务器中获取所述压缩文件;
36.轻量化显示模块,被配置为使用webgl绘图程序对所述压缩文件进行处理以在浏览器中显示构件的轻量化bim模型。
37.根据本发明的第三方面,提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如上述本发明第一方面所述的用于超大体量bim工程的轻量化处理方法中的步骤。
38.根据本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述本发明第一方面所述的用于超大体量bim工程的轻量化处理方法中的步骤。
39.根据本发明公开的一个实施例,具有如下有益效果:
40.本发明的用于超大体量bim工程的轻量化处理方法采用draco图形压缩数据库进行数据压缩,减少bim模型轻量化后的文件体积大小,且减少相同条件下的网络传输时间;采用indexdb缓存的方式,使用户打开过一次后,再次打开相同的模型时就可以使用本地缓存的数据,减少网络请求次数,同时也减少了解析压缩数据的时间,可将缓存数据直接应用于webgl渲染三维模型。
41.通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
42.被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
43.图1为根据实施例提供的一种用于超大体量bim工程的轻量化处理方法的流程示意图;
44.图2为根据实施例提供的一种用于超大体量bim工程的轻量化处理方法中步骤s1的具体流程示意图;
45.图3为根据实施例提供的一种用于超大体量bim工程的轻量化处理方法中步骤s2的具体流程示意图;
46.图4为根据实施例提供的一种用于超大体量bim工程的轻量化处理方法中步骤s3的具体流程示意图;
47.图5为根据实施例提供的一种用于超大体量bim工程的轻量化处理方法一个具体示例图;
48.图6为根据实施例提供的一种用于超大体量bim工程的轻量化处理系统的结构框图;
49.图7为一种电子设备的示意图。
具体实施方式
50.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
51.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
52.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
53.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
54.实施例1:
55.参见图1所示,本实施例提供了一种用于超大体量bim工程的轻量化处理方法,该方法包括:
56.步骤s1:从构件的bim模型中提取得到构件的几何数据;
57.步骤s2:利用draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将压缩文件存储至服务器中;
58.需要说明的是,本实施例中服务器可以为云服务器。
59.步骤s3:响应于浏览器的加载模型请求,使用javascript程序从服务器中获取压缩文件;
60.步骤s4:使用webgl绘图程序对压缩文件进行处理以在浏览器中显示构件的轻量化bim模型。
61.本实施例的用于超大体量bim工程的轻量化处理方法中采用由google公司提出的图形压缩库的压缩程序(简称draco)进行数据压缩存储,相较于openctm压缩方式,draco的压缩比更高,可以将3d模型压缩至更小的文件大小。由于draco采用的压缩算法更加先进,可以去除模型中更多的冗余信息,并利用预测和编码等技术来减小文件大小;另外draco具有更好的可扩展性,可以更好地适应各种3d图形应用程序的需求;draco支持多种编程语言和平台,包括webgl、opengl和vulkan等,这使得draco可以在不同的设备和平台上快速加载和解码3d模型数据。
62.可选地,参见图2所示,本实施例的用于超大体量bim工程的轻量化处理方法中步骤s1具体包括:
63.步骤s11:从构件的bim模型中提取得到构件的顶点坐标数据并存储到顶点数据数组中;
64.步骤s12:从构件的bim模型中提取得到构件的法线数据并存储到法线数据数组中;
65.步骤s13:从构件的bim模型中提取得到构件的纹理数据并存储到纹理数据数组中;
66.步骤s14:从构件的bim模型中提取得到构件的材质数据,并存储到材质数据数组中。
67.可选地,参见图3所示,本实施例的用于超大体量bim工程的轻量化处理方法中步
骤s2具体包括:
68.步骤s21:利用draco图形压缩库的压缩算法对顶点数据数组、纹理数据数组以及材质数据数组中的数据进行压缩处理以得到压缩文件;
69.步骤s22:按照预设存储阈值对压缩文件进行分块处理得到bim模型分块数据包,以存储至服务器中,并生成相应的存储索引文件。
70.可选地,参见图4所示,本实施例的用于超大体量bim工程的轻量化处理方法中步骤s3具体包括:
71.步骤s31:接收浏览器的加载模型请求;
72.步骤s32:响应于浏览器的加载模型请求,使用javascript程序创建xmlhttprequest对象,并从服务器中下载存储索引文件;
73.步骤s33:解析下载的存储索引文件得到索引key;
74.步骤s34:如果通过索引key在浏览器的indexdb缓存中未查询到相应的bim模型分块数据包,则使用javascript程序创建的xmlhttprequest对象从服务器中获取相应的bim模型分块数据包,并转入步骤s36;
75.步骤s35:如果通过索引key在浏览器的indexdb缓存中查询到相应的bim模型分块数据包,则从浏览器的indexdb缓存中直接提取解码后的bim模型分块数据包;
76.步骤s36:利用draco图形压缩库的解码程序对bim模型分块数据包进行解析处理得到解码后的bim模型分块数据包。
77.本实施例的用于超大体量bim工程的轻量化处理方法中在浏览器使用indexdb缓存的方式将首次解码后的bim模型数据缓存至用户本地的浏览器中;下次用户打开相同的bim轻量化模型时,程序先检索本地的indexdb缓存中是否存在已经解码后的bim模型数据,若已存在,则优先使用本地缓存数据,由于已经是解码后的数据,可直接用于webgl渲染显示,减少解码时间,同时也减少了网络请求数量;如不存在,则通过http协议从服务器中加载相应的压缩文件,并解析后存储到indexdb缓存中。
78.可选地,本实施例的用于超大体量bim工程的轻量化处理方法中步骤s36具体包括:
79.利用draco图形压缩库的解码程序在javascript程序中创建worker线程并解码bim模型分块数据包得到解码后的bim模型分块数据包;
80.将解码后的bim模型分块数据包发送给javascript主线程,并将解码后的bim模型分块数据包存储到浏览器的indexdb缓存中。
81.可选地,本实施例的用于超大体量bim工程的轻量化处理方法中步骤s4具体为,使用webgl绘图程序从javascript主线程中读取解码后的bim模型分块数据包,并运行顶点着色器和片元着色器进行绘制,以在浏览器中显示构件的轻量化bim模型。
82.可选地,本实施例的用于超大体量bim工程的轻量化处理方法中预设存储阈值为512kb。
83.具体,参见图5所示,以一个具体的实施例说明本实施例的用于超大体量bim工程的轻量化处理方法的技术方案:
84.第一部分、提取bim模型几何数据并压缩存储;
85.n1.提取bim模型构件的几何信息,获取构件的顶点坐标数据,并存储到顶点数据
数组中;
86.n2.提取bim模型构件的法线数据,并存储到法线数据数组中;
87.n3.提取bim模型构件的纹理数据,并存储到纹理数据数组中;
88.n4.提取bim模型构件的材质信息,并存储到材质数据数组中;
89.n5.利用draco提供的压缩方式,将构件的顶点、法线、纹理等数据进行压缩及存储;
90.n6.将压缩后的数据进行分块存储,如每块大小为512kb,并生成存储索引文件,记录文件分块顺序以及文件数量等信息;
91.第二部分、利用javascript程序,获取并解析第一部分中存储的数据块,并使用webgl解析构件的几何数据,在浏览器中显示三维模型。
92.t1.使用javascript程序创建xmlhttprequest对象,下载bim模型轻量化后的存储索引文件;
93.t2.解析t1中获取到的存储索引文件;
94.t3.通过解析得到的索引key查询浏览器的indexdb缓存中是否已存在相应的bim模型分块数据包,如已存在,则直接进入t7;
95.t4.本地的indexdb缓存中不存在存储索引文件中相应的bim模型分块数据包,则创建xmlhttprequest对象,下载获取存储在服务器中的bim模型分块数据包。
96.t5.使用draco压缩的decoder解码程序在javascript程序中创建worker线程并解码t4中获取的bim模型分块数据包,然后传递给主线程,以避免解码过程中阻塞主线程活动;
97.t6.javascript主线程获取到t5中的bim模型分块数据包后,按key-value(索引路径
‑‑‑
数据包解码后的数据)的形式存储到本地的浏览器indexdb缓存中;
98.t7.使用webgl程序读取模型解码后的几何数据,运行顶点着色器和片元着色器进行绘制,并在浏览器上自动显示轻量化bim模型。
99.综上所述,本发明实施例的用于超大体量bim工程的轻量化处理方法采用draco图形压缩数据库进行数据压缩,减少bim模型轻量化后的文件体积大小,且减少相同条件下的网络传输时间;采用indexdb缓存的方式,使用户打开过一次后,再次打开相同的模型时就可以使用本地缓存的数据,减少网络请求次数,同时也减少了解析压缩数据的时间,可将缓存数据直接应用于webgl渲染三维模型。
100.实施例2:
101.参见图6所示,本实施例提供了一种用于超大体量bim工程的轻量化处理系统1,所述系统1包括:
102.几何数据提取模块10,被配置为从构件的bim模型中提取得到构件的几何数据;
103.图形压缩存储模块20,被配置为利用draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将压缩文件存储至服务器中;
104.模型加载模块30,被配置为响应于浏览器的加载模型请求,使用javascript程序从服务器中获取压缩文件;
105.轻量化显示模块40,被配置为使用webgl绘图程序对压缩文件进行处理以在浏览器中显示构件的轻量化bim模型。
106.可选地,本实施例的用于超大体量bim工程的轻量化处理系统1中几何数据提取模块10具体包括:
107.第一提取单元,被配置为从构件的bim模型中提取得到构件的顶点坐标数据并存储到顶点数据数组中;
108.第二提取单元,被配置为从构件的bim模型中提取得到构件的法线数据并存储到法线数据数组中;
109.第三提取单元,被配置为从构件的bim模型中提取得到构件的纹理数据并存储到纹理数据数组中;
110.第四提取单元,被配置为从构件的bim模型中提取得到构件的材质数据,并存储到材质数据数组中。
111.可选地,本实施例的用于超大体量bim工程的轻量化处理系统1中图形压缩存储模块20具体包括:
112.图形压缩单元,被配置为利用draco图形压缩库的压缩算法对顶点数据数组、纹理数据数组以及材质数据数组中的数据进行压缩处理以得到压缩文件;
113.分块存储单元,被配置为按照预设存储阈值对压缩文件进行分块处理得到bim模型分块数据包,以存储至服务器中,并生成相应的存储索引文件。
114.可选地,本实施例的用于超大体量bim工程的轻量化处理系统1中模型加载模块30具体包括:
115.接收单元,被配置为接收浏览器的加载模型请求;
116.下载单元,被配置为响应于浏览器的加载模型请求,使用javascript程序创建xmlhttprequest对象,并从服务器中下载存储索引文件;
117.解析单元,被配置为解析下载的存储索引文件得到索引key;
118.第一获取单元,被配置为如果通过索引key在浏览器的indexdb缓存中未查询到相应的bim模型分块数据包,则使用javascript程序创建的xmlhttprequest对象从服务器中获取相应的bim模型分块数据包,并转入步骤s36;
119.第二获取单元,被配置为如果通过索引key在浏览器的indexdb缓存中查询到相应的bim模型分块数据包,则从浏览器的indexdb缓存中直接提取解码后的bim模型分块数据包;
120.解码单元,被配置为利用draco图形压缩库的解码程序对bim模型分块数据包进行解析处理得到解码后的bim模型分块数据包。
121.可选地,本实施例的用于超大体量bim工程的轻量化处理系统1中解码单元包括:
122.利用draco图形压缩库的解码程序在javascript程序中创建worker线程并解码bim模型分块数据包得到解码后的bim模型分块数据包;
123.将解码后的bim模型分块数据包发送给javascript主线程,并将解码后的bim模型分块数据包存储到浏览器的indexdb缓存中。
124.可选地,本实施例的用于超大体量bim工程的轻量化处理系统1中轻量化显示模块40还被具体配置为使用webgl绘图程序从javascript主线程中读取解码后的bim模型分块数据包,并运行顶点着色器和片元着色器进行绘制,以在浏览器中显示构件的轻量化bim模型。
125.可选地,本实施例的用于超大体量bim工程的轻量化处理系统1中预设存储阈值为512kb。
126.实施例3:
127.本发明公开了一种电子设备。电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时,实现本发明公开实施例1中任一项的用于超大体量bim工程的轻量化处理方法中的步骤。
128.图7为根据本发明实施例的一种电子设备的结构图,如图7所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、近场通信(nfc)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
129.本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
130.实施例4:
131.本发明公开了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现本发明的实施例1中任一项的用于超大体量bim工程的轻量化处理方法中的步骤。
132.请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
133.本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
134.本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或
多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
135.适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。
136.适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cd rom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
137.虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
138.类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
139.由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
140.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
141.虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
技术特征:
1.一种用于超大体量bim工程的轻量化处理方法,其特征在于,所述方法包括:步骤s1:从构件的bim模型中提取得到构件的几何数据;步骤s2:利用draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将所述压缩文件存储至服务器中;步骤s3:响应于浏览器的加载模型请求,使用javascript程序从所述服务器中获取所述压缩文件;步骤s4:使用webgl绘图程序对所述压缩文件进行处理以在浏览器中显示构件的轻量化bim模型。2.根据权利要求1所述的用于超大体量bim工程的轻量化处理方法,其特征在于,所述步骤s1具体包括:步骤s11:从构件的bim模型中提取得到构件的顶点坐标数据并存储到顶点数据数组中;步骤s12:从构件的bim模型中提取得到构件的法线数据并存储到法线数据数组中;步骤s13:从构件的bim模型中提取得到构件的纹理数据并存储到纹理数据数组中;步骤s14:从构件的bim模型中提取得到构件的材质数据,并存储到材质数据数组中。3.根据权利要求2所述的用于超大体量bim工程的轻量化处理方法,其特征在于,所述步骤s2具体包括:步骤s21:利用所述draco图形压缩库的压缩算法对所述顶点数据数组、纹理数据数组以及材质数据数组中的数据进行压缩处理以得到所述压缩文件;步骤s22:按照预设存储阈值对所述压缩文件进行分块处理得到bim模型分块数据包,以存储至所述服务器中,并生成相应的存储索引文件。4.根据权利要求3所述的用于超大体量bim工程的轻量化处理方法,其特征在于,所述步骤s3具体包括:步骤s31:接收浏览器的加载模型请求;步骤s32:响应于浏览器的加载模型请求,使用javascript程序创建xmlhttprequest对象,并从所述服务器中下载所述存储索引文件;步骤s33:解析下载的所述存储索引文件得到索引key;步骤s34:如果通过所述索引key在浏览器的indexdb缓存中未查询到相应的bim模型分块数据包,则使用javascript程序创建的xmlhttprequest对象从所述服务器中获取相应的bim模型分块数据包,并转入步骤s36;步骤s35:如果通过所述索引key在浏览器的indexdb缓存中查询到相应的bim模型分块数据包,则从浏览器的indexdb缓存中直接提取解码后的bim模型分块数据包;步骤s36:利用draco图形压缩库的解码程序对bim模型分块数据包进行解析处理得到解码后的bim模型分块数据包。5.根据权利要求4所述的用于超大体量bim工程的轻量化处理方法,其特征在于,所述步骤s36具体包括:利用draco图形压缩库的解码程序在javascript程序中创建worker线程并解码bim模型分块数据包得到解码后的bim模型分块数据包;将解码后的bim模型分块数据包发送给javascript主线程,并将解码后的bim模型分块
数据包存储到浏览器的indexdb缓存中。6.根据权利要求5所述的用于超大体量bim工程的轻量化处理方法,其特征在于,所述步骤s4具体为,使用webgl绘图程序从javascript主线程中读取解码后的bim模型分块数据包,并运行顶点着色器和片元着色器进行绘制,以在浏览器中显示构件的轻量化bim模型。7.根据权利要求3所述的用于超大体量bim工程的轻量化处理方法,其特征在于,所述预设存储阈值为512kb。8.一种用于超大体量bim工程的轻量化处理系统,其特征在于,所述系统包括:几何数据提取模块,被配置为从构件的bim模型中提取得到构件的几何数据;图形压缩存储模块,被配置为利用draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将所述压缩文件存储至服务器中;模型加载模块,被配置为响应于浏览器的加载模型请求,使用javascript程序从所述服务器中获取所述压缩文件;轻量化显示模块,被配置为使用webgl绘图程序对所述压缩文件进行处理以在浏览器中显示构件的轻量化bim模型。9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至7中任一项所述的用于超大体量bim工程的轻量化处理方法中的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至7中任一项所述的用于超大体量bim工程的轻量化处理方法中的步骤。
技术总结
本发明公开了一种用于超大体量BIM工程的轻量化处理方法及系统,该方法包括:从构件的BIM模型中提取得到构件的几何数据;利用Draco图形压缩库的压缩程序对构件的几何数据进行压缩处理以得到压缩文件,并将所述压缩文件存储至服务器中;响应于浏览器的加载模型请求,使用JavaScript程序从所述服务器中获取所述压缩文件;使用WebGL绘图程序对所述压缩文件进行处理以在浏览器中显示构件的轻量化BIM模型;该方法采用Draco图形压缩数据库进行数据压缩,减少BIM模型轻量化后的文件体积大小,且减少相同条件下的网络传输时间;采用IndexDB缓存的方式,减少网络请求次数和解析压缩数据的时间,可将缓存数据直接应用于WebGL渲染三维模型。维模型。维模型。
技术研发人员:李双来 江志远 吴秉睿 张淑莉 朱江浩 常攀龙 张少南 王超 董海旭 李代鹏 程衍 杨一帆
受保护的技术使用者:中铁建设集团有限公司
技术研发日:2023.06.06
技术公布日:2023/8/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种用于工程管理的可视化分解方法及系统与流程 下一篇:风能设施的转子叶片的制作方法