本技术涉及数据处理领域,尤其是涉及一种倾斜摄影三维模型渲染方法、计算机设备及存储介质。
背景技术:
1、开放场景图形二进制(open scene graph binary,osgb)作为一种倾斜摄影三维模型(或称实景三维模型)的存储格式,是航空遥感三维摄影测量作业中最主流的格式。在实际的生产和应用环境中,osgb模型文件庞大,常能达到几个gb,甚至是上百gb,这样的文件大小对于由个人电脑(personal computer,pc)端实施渲染的场景而言并没有什么问题,但对于传输资源受限的web端或者移动端进行渲染的场景而言,就存在较大的障碍。对此,相关技术提供的解决方案是将osgb模型转换为三维模型瓦片(3dtiles)格式,但这个过程需要耗费大量的时间,严重影响了web端、移动端的osgb模型渲染效率。
2、所以,现在亟需提供一种新的倾斜摄影三维模型渲染方案,以提升web端、移动端的osgb模型渲染效率。
技术实现思路
1、为了解决相关技术中web端、移动端的osgb模型渲染效率低的问题,本技术提供了一种倾斜摄影三维模型渲染方法、计算机设备及存储介质。
2、第一方面,本技术提供一种倾斜摄影三维模型渲染方法,所述倾斜摄影三维模型渲染方法包括:
3、下载包含osgb文件解析器的wasm(webassembly)库文件,所述osgb文件解析器支持识别osgb格式的瓦片文件;
4、向服务器发送osgb渲染请求,所述osgb渲染请求用于请求对目标osgb模型进行渲染;
5、接收所述服务器根据所述osgb渲染请求传输的所述目标osgb模型的所述瓦片文件;
6、读取所述瓦片文件的文件头,并根据所述文件头确定所述瓦片文件的格式类型;
7、控制所述osgb文件解析器读取所述瓦片文件中的数据,并将读取的所述数据的数据结构转换成webgl引擎所支持的数据结构,以供所述webgl引擎的渲染器根据转换后的所述数据进行渲染。
8、通过采用上述技术方案,客户端可以预先下载包含osgb文件解析器的wasm库文件,基于该wasm库文件中的osgb文件解析器,客户端得以支持对osgb格式的文件进行解析。当该客户端需要对一目标osgb模型进行渲染时,可以向服务器发送osgb渲染请求,服务器接收到客户端的osgb渲染请求后,可以在不对目标osgb模型进行格式转换的情况下直接将目标osgb模型的瓦片文件以osgb格式发送给客户端,而客户端接收到瓦片文件后,可以利用osgb文件解析器对瓦片文件进行解析,将瓦片文件中的数据转换成webgl引擎所支持的数据结构,从而使得webgl引擎可以根据转换后的数据实现渲染。本技术实施例提供的方案在对osgb模型进行渲染时,通过让客户端支持osgb格式的解析,从而省却了服务器将osgb模型转换为3dtiles格式的过程,因此节省服务器转换osgb模型到3dtiles模型所耗费的时间,提升了客户端利用webgl引擎进行osgb模型渲染的效率;同时因为服务器不需要再耗费处理资源与存储资源对osgb模型进行格式转换,因此也降低了osgb模型渲染过程在服务器侧的资源占用。
9、可选地,所述控制所述osgb文件解析器根据所述文件头读取所述瓦片文件中的数据包括:
10、从所述瓦片文件的文件头中获取所述瓦片文件的属性信息,所述属性信息中包含大小端编码信息与文件版本号中的至少一种;
11、控制所述osgb文件解析器根据所述属性信息读取所述瓦片文件中的数据。
12、可选地,所述控制所述osgb文件解析器读取所述瓦片文件中的数据之前,所述倾斜摄影三维模型渲染方法还包括:
13、读取所述瓦片文件的文件头;
14、根据所述文件头确定所述瓦片文件的格式;
15、所述控制所述osgb文件解析器读取所述瓦片文件中的数据包括:
16、在确定所述瓦片文件为所述osgb格式的情况下,控制所述osgb文件解析器读取所述瓦片文件中的数据。
17、可选地,所述根据所述文件头确定所述瓦片文件的格式包括:
18、确定所述瓦片文件的格式类型包括:
19、读取所述瓦片文件中文件头的前4个字节;
20、在根据所述前4个字节确定所述瓦片文件不属于3dtiles格式的情况下,读取所述文件头的前25个字节,所述3dtiles格式包括批处理3d模型(b3dm)格式、3d模型实例(i3dm)格式、点云(pnts)格式、合成图像(cmpt)格式;
21、根据所述前25个字节确定所述瓦片文件是否属于osgb格式。
22、可选地,所述读取所述文件头的前4个字节之后,所述倾斜摄影三维模型渲染方法还包括:
23、在根据所述前4个字节确定所述瓦片文件属于3dtiles格式的情况下,读取所述文件头中所述前4个字节之后的次4个字节;
24、控制3dtiles文件解析器根据所述次4个字节确定所述瓦片文件的版本,并根据所述版本读取所述瓦片文件中的数据,以供所述webgl引擎的渲染器根据所述数据进行渲染。
25、可选地,所述osgb文件解析器通过c++编程语言实现;所述控制所述osgb文件解析器读取所述瓦片文件中的数据,并将读取的所述数据转换成webgl引擎所支持的数据结构包括:
26、同步控制多个所述osgb文件解析器并行地读取所述瓦片文件中的数据,并将读取的所述数据的数据结构转换成webgl引擎所支持的数据结构。
27、第二方面,本技术提供一种倾斜摄影三维模型渲染方法,所述倾斜摄影三维模型渲染方法包括:
28、接收客户端发送的osgb渲染请求,所述osgb渲染请求用于请求对目标osgb模型进行渲染;
29、根据所述osgb渲染请求将所述目标osgb模型的瓦片文件以osgb格式发送给所述客户端,以供所述客户端采用osgb文件解析器对所述瓦片文件进行解析后实现对所述目标osgb模型的渲染,所述osgb文件解析器由所述客户端通过下载获取。
30、通过采用上述技术方案,客户端可以预先下载包含osgb文件解析器的wasm库文件,基于该wasm库文件中的osgb文件解析器,客户端得以支持对osgb格式的文件进行解析。当该客户端需要对一目标osgb模型进行渲染时,可以向服务器发送osgb渲染请求,服务器接收到客户端的osgb渲染请求后,可以在不对目标osgb模型进行格式转换的情况下直接将目标osgb模型的瓦片文件以osgb格式发送给客户端,而客户端接收到瓦片文件后,可以利用osgb文件解析器对瓦片文件进行解析,将瓦片文件中的数据转换成webgl引擎所支持的数据结构,从而使得webgl引擎可以根据转换后的数据实现渲染。本技术实施例提供的方案在对osgb模型进行渲染时,通过让客户端支持osgb格式的解析,从而省却了服务器将osgb模型转换为3dtiles格式的过程,因此节省服务器转换osgb模型到3dtiles模型所耗费的时间,提升了客户端利用webgl引擎进行osgb模型渲染的效率;同时因为服务器不需要再耗费处理资源与存储资源对osgb模型进行格式转换,因此也降低了osgb模型渲染过程在服务器侧的资源占用。
31、可选地,所述接收客户端发送的osgb渲染请求之后,所述根据所述osgb渲染请求将所述目标osgb模型的瓦片文件以osgb格式发送给所述客户端之前,还包括:
32、对所述osgb渲染请求进行解析;
33、确定所述osgb渲染请求中包含第一指示信息,所述第一指示信息用于所述客户端请求服务器提供osgb格式的所述瓦片文件;
34、所述对所述osgb渲染请求进行解析之后,所述倾斜摄影三维模型渲染方法还包括:若所述osgb渲染请求中未包含所述第一指示信息,则将osgb格式的所述瓦片文件转换为3dtiles格式;将3dtiles格式的所述瓦片文件传输给所述客户端,以供所述客户端利用3dtiles文件解析器对所述瓦片文件进行解析,并实现对所述目标osgb模型的渲染。
35、第三方面,本技术提供一种计算机设备,包括处理器、存储器以及通信总线,所述通信总线用于实现所述处理器与所述存储器之间的通信连接,所述存储器中存储有第一渲染程序与第二渲染程序中的任意一个,所述第一渲染程序可供所述处理器执行,以实现前述第一方面中任一项所述的倾斜摄影三维模型渲染方法;所述第二渲染程序可供所述处理器执行,以实现前述第二方面中任一项所述的倾斜摄影三维模型渲染方法。
36、第四方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有存储有第一渲染程序与第二渲染程序中的至少一个,所述第一渲染程序可供处理器执行,以实现前述第一方面中任一项所述的倾斜摄影三维模型渲染方法;所述第二渲染程序可供所述处理器执行,以实现前述第二方面中任一项的倾斜摄影三维模型渲染方法。
37、通过采用上述技术方案,提供了倾斜摄影三维模型渲染方法的计算机程序的载体。
38、综上所述,本技术至少包括以下有益技术效果:
39、本技术实施例提供的倾斜摄影三维模型渲染方案节省了服务器将osgb模型转换为3dtiles模型所耗费的时间,提升了客户端利用webgl引擎进行osgb模型渲染的效率,降低了osgb模型渲染过程中服务器侧的资源耗费。