一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多参数渲染的海量倾斜数据加载方法与流程

2022-11-30 14:21:43 来源:中国专利 TAG:


1.本发明涉及到海量倾斜数据的加载技术领域,具体涉及一种基于多参数渲染的海量倾斜数据加载方法。


背景技术:

2.随着智慧城市的不断建设,三维gis越来越受到各行各业的重视。其中,web三维gis因其访问便捷、数据融合、跨平台等特性受到gis行业的追捧。随之而来的,三维倾斜数据的高效加载是三维场景下的重要需求。目前,三维场景中加载倾斜数据的方法主要是通过将osgb原始数据转换成3dtiles数据,3dtiles数据主要按照格网对可视化区域内的地理空间进行规则划分,每个区域范围内的所有层级存储于一个文件夹中,同一文件夹中则存储不同细节层级的数据文件,不同地理空间范围的数据存储于不同的文件夹中,不同文件夹对应着不同区域的倾斜摄影测量数据,以连续lod模型的形式对外提供服务。客户端则通过第三方api或直接读取文件地址的形式,在场景中进行渲染。
3.虽然web端能够完成三维倾斜数据的加载,但受限于网速、gpu、浏览器内存等多方限制,极易造成数据加载慢、加载瓦片不清晰、加载页面崩溃等问题,降低了用户体验。尽管,gis技术人员对3dtiles数据进行了数据层级的优化,例如:顶层构建、减少层级数量等,但依然无法满足对海量倾斜数据的加载,易出现加载数据慢、浏览器内存不足、网页卡顿等问题。
4.因此,在面对海量倾斜数据的加载上,传统数据层级的优化方式已不满足web端对倾斜数据的数据需求。需要一种新的海量倾斜数据快速加载的能力,满足客户端对海量倾斜数据的优化加载,可有效提升整个三维场景的使用效率。


技术实现要素:

5.针对现有技术的不足,本发明的目的是提供一种基于多参数渲染的海量倾斜数据加载方法,该方法通过综合考虑网络带宽的实际响应能力以及各层级数据的切换能力,并引入客户端实际网络环境的变量以及分层渲染调节参数,使得相机视角下瓦片数据的加载更加准确,从而可以减轻系统的绘制压力、提高加载和渲染效率。
6.为达到上述目的,本发明采用的技术方案如下:
7.一种基于多参数渲染的海量倾斜数据加载方法,其关键在于包括以下步骤:
8.步骤1、构建基于八叉树的层级结构索引;
9.步骤2、根据客户端当前网速与基础网络带宽,动态调节网络带宽变量,实时对每次加载的倾斜瓦片数据数量进行控制;
10.步骤3、根据八叉树层级结构索引中相机视觉层级的高度变化速度,动态调节分层调节参数,实时控制浏览器对后台瓦片数据的加载数量;
11.步骤4、将加载到前端浏览器的倾斜数据进行内存优化管理。
12.进一步的,步骤1中所述基于八叉树的层级结构索引的构建步骤为:
13.将每个建筑物生成lod模型;
14.按照分块边界对lod模型数据进行分块;
15.在每个数据块内部继续分块、压缩,生成整体八叉树。
16.进一步的,步骤2中所述对加载的倾斜数据量进行控制的步骤如下:
17.步骤2.1、获取网络基础带宽;
18.步骤2.2、根据浏览器初始化倾斜数据时倾斜的初始化数据量以及服务器响应时间,计算得出当前网速;
19.步骤2.3、根据当前网速与基础网络带宽的倍数关系,初始化网络带宽变量k的值;
20.步骤2.4、在浏览器发送请求数据时,按照公式计算得出屏幕空间误差,当屏幕空间误差x大于给定的最大屏幕空间误差时则加载当前瓦片节点及其子节点,其中,x为屏幕空间误差,a为几何误差,d为瓦片与相机的距离;
21.步骤2.5、根据后续每一次浏览器发送请求数据时相应数据的响应时间,重新计算当前网速,同时更新网络带宽变量k的值,并按照步骤2.4实时对加载的倾斜瓦片数据数量进行控制。
22.进一步的,所述网络带宽变量k的值的更新方式为:
23.k=1*10n(n《=0),
24.其中,n为当前网速与基础网络带宽的倍数关系,若当前网速大于或等于基础网络带宽时,n不变;若当前网速小于基础网络带宽,但大于0.7倍基础网络带宽时,n减1;若当前网速小于0.7倍基础网络带宽,但大于0.5倍基础网络带宽时,n减2;若当前网速小于0.5基础网络带宽,n减3。
25.进一步的,步骤3中控制浏览器对后台瓦片数据的加载数量的具体步骤为:
26.步骤3.1、获取当前相机视野下视觉层级的高度变化速度;
27.步骤3.2、依据当前视觉层级的高度变化速度,动态设置所述分层调节参数;
28.步骤3.3、依据设置的分层调节参数,按照公式计算得出屏幕空间误差,当屏幕空间误差x大于给定的最大屏幕空间误差时则加载当前层级下的瓦片数据,其中,y为屏幕空间误差,a为几何误差,k为当前网速对应的网络带宽变量,d为瓦片与相机的距离,m为分层调节参数。
29.进一步的,步骤3.2中动态设置所述分层调节参数的方式如下:
30.当视觉层级的高度变化速度在4500米以上时,所述分层调节参数的取值为1.25;当视觉层级的高度变化速度在3000米到4500米时,所述分层调节参数的取值为1.50;当视觉层级的高度变化速度在1500米到3000米时,所述分层调节参数的取值1.75;当视觉层级的高度变化速度小于1500米时,所述分层调节参数的取值为2.0。
31.进一步的,所述内存优化管理的步骤为:
32.步骤4.1、浏览器通过瓦片数据与相机视点的距离对瓦片数据进行优先排序,距离越近的,在加载队列中排序靠前;距离较远的,排序靠后;
33.步骤4.2、浏览器随着相机视角范围的变化,将已加载完成的瓦片数据进入缓存队列的尾部,并在浏览器的本地存储中记录此瓦片数据的元数据信息;
34.步骤4.3、当队列中的瓦片数据大于浏览器最大内存阈值时,根据元数据信息,动
态清除位于缓存队列尾部的数据。
35.在传统的加载方法中,判断是否加载当前瓦片数据,主要通过给定的最大屏幕空间误差以及瓦片元数据信息计算得到的屏幕空间误差比较而来,本发明在此基础上,基于网络带宽的实际响应能力以及各层级数据的切换能力,引入了客户端实际网络环境的变量以及分层渲染调节参数,在判断当前瓦片是否满足加载条件时以及数据分层渲染调节时更加精准,保障系统能够平滑过渡由粗到细的加载问题;同时,由于充分考虑了客户端实际加载的网络环境,优化了传统的加载模式,使得相机视角下瓦片数据的加载更加准确,减轻了系统的绘制压力,提高了加载和渲染效率。
36.本发明的显著效果是:
37.1)与传统倾斜数据四叉树切片方式相比,采用八叉树的数据切片方式,数据存储简单、调用更加灵活;并且,基于八叉树的数据存储特点,大幅度提升了检索能力,降低了服务器内存开销。
38.2)与传统数据加载方式相比,本方法通过引入网络环境带宽,使得系统在调用瓦片数据时,根据网络环境的不同,实时请求的瓦片数量也会不同,充分考虑了客户端实际加载的网络环境,优化了传统的加载模式,既减轻了网络带宽压力,也减轻了用户浏览数据的卡顿感,减轻了系统的绘制压力,提高了加载和渲染效率,使得相机视角下瓦片数据的加载更加准确。
39.3)与传统浏览器渲染相比,本方法通过引入相机高度的速度切换参数及分层调节参数,在判断瓦片节点是否在视锥体范围内时更加精准,真正实现了瓦片数据的逐层精细化加载。
40.4)与传统浏览器清除倾斜数据缓存相比,通过基于相机视点的多区域动态缓存数据方式,可充分利用浏览器的最大缓存能力,发挥浏览器缓存作用,可大幅度解决因缓存持续增长造成的系统崩溃。
附图说明
41.图1是本发明的总体流程图;
42.图2是本发明步骤2的具体流程图;
43.图3是本发明步骤3的具体流程图。
具体实施方式
44.下面结合附图对本发明的具体实施方式以及工作原理作进一步详细说明。
45.如图1所示,一种基于多参数渲染的海量倾斜数据加载方法,具体步骤如下:
46.步骤1、构建基于八叉树的层级结构索引;
47.传统的倾斜数据多数采用四叉树进行瓦片切分。但考虑到对倾斜数据模块的分层调用以及节省空间上。所以,采用线性八叉树的数据结构作为层级结构索引对瓦片数据进行数据管理。其中,线性八叉树充分考虑了提高空间利用率。线性八叉树的结构会让瓦片的组织更加紧凑,也可以让tileset.json文件体积更小。
48.所述基于八叉树的层级结构索引的构建步骤为:
49.将每个建筑物生成lod模型;
50.按照分块边界对lod模型数据进行分块;
51.在每个数据块内部继续分块、压缩,主要分为osgb优化阶段以及顶层构建阶段,生成整体八叉树。
52.传统大范围的倾斜数据加载主要依靠人眼的透视。根据“近大远小”的原则,对倾斜摄影的瓦片进行加载。在判断数据瓦片是否进行加载时,主要通过msse(给定的最大屏幕空间误差),以及根据待加载瓦片的元数据信息计算出的屏幕空间误差(sse)。通过二者进行比较,如果sse大于msse时,则进行相机视角下的瓦片加载。但传统的加载方式忽略了不同网络环境的加载平滑程度。为了满足不同网络环境下得数据加载需求,也为了尽可能地使用户有更好加载体验,在传统加载方式上,引入网络带宽变量k,在判断是否加载某一瓦片和其子节点时,能更加精准,并且能够在很大程度上解决传统加载方式不能适应不同网络环境的缺陷。
53.进入步骤2、根据客户端当前网速与基础网络带宽,动态调节网络带宽变量,实时对每次加载的倾斜瓦片数据数量进行控制,参见附图2,具体步骤如下:
54.步骤2.1、获取网络基础带宽;
55.步骤2.2、根据浏览器初始化倾斜数据时倾斜的初始化数据量以及服务器响应时间,计算得出当前网速;
56.步骤2.3、根据当前网速与基础网络带宽的倍数关系,初始化网络带宽变量k的值;
57.假设以基础网络带宽50mbps为例,k值默认值为1,通过k值与网速以线性相关的计算方式。
58.因此,所述网络带宽变量k的值的更新方式为:
59.k=1*10n(n《=0),
60.其中,n为当前网速与基础网络带宽的倍数关系,若当前网速大于或等于基础网络带宽时,n不变;若当前网速小于基础网络带宽,但大于0.7倍基础网络带宽时,n减1;若当前网速小于0.7倍基础网络带宽,但大于0.5倍基础网络带宽时,n减2;若当前网速小于0.5基础网络带宽,n减3。
61.步骤2.4、在浏览器发送请求数据时,按照公式计算得出屏幕空间误差,当屏幕空间误差x大于给定的最大屏幕空间误差时则加载当前瓦片节点及其子节点,其中,x为屏幕空间误差,a为几何误差,d为瓦片与相机的距离;
62.步骤2.5、根据后续每一次浏览器发送请求数据时相应数据的响应时间,重新计算当前网速,同时更新网络带宽变量k的值,并按照步骤2.4实时对加载的倾斜瓦片数据数量进行控制。
63.在引入网络带宽变量k之后,根据网络环境,有限的增加或减小了屏幕空间误差的值。在面向三维web可视化的系统中,用户在进行缩放、变换等操作时,实时根据带宽的快慢,动态设置k。如因网络环境条件差,可将k值调小,当k值减小时,相应加载的倾斜瓦片,也会变得粗糙。但整体的加载渲染上,会使得倾斜数据得加载更加的平滑,减少卡顿。
64.倾斜因数据层级粗糙的,数据量小;数据层级清晰的,数据量大的特点。而且,由于根据步骤1的存储方式,瓦片数据进行了线性八叉树的结构划分,各个数据的层级语义相对精准,浏览器通过元数据信息进行数据的检索调用相对较快。根据此特性,浏览器在加载三
维倾斜瓦片数据时,应考虑各数据的层级语义。为保证浏览器加载倾斜瓦片的数量保持在一个相对稳定的状态。
65.步骤3、根据八叉树层级结构索引中相机视觉层级的高度变化速度,动态调节分层调节参数,实时控制浏览器对后台瓦片数据的加载数量;
66.本实施例在网络环境引入的条件下,再增加层级变化的高度参数m。其主要实现过程:浏览器端在进行数据的移动、缩放、翻转等操作时,各层级随着相机视野的高度变化,加载的倾斜数据也从粗糙层级向精细层级进行转换。在转换过程中,如数据的层级变化相对较快时,浏览器的瓦片数据请求量激增,应增大调节参数m,控制浏览器对后台瓦片数据的请求数量,保证浏览器的稳定性以及倾斜数据平滑性;如层级高度变化相对较高,浏览器的实时请求数量相对较少时,则可以减小调节参数m,保证相机视觉下各层级的精细度以及数据切换的平滑性。参见附图3,具体步骤如下:
67.步骤3.1、获取当前相机视野下视觉层级的高度变化速度;
68.步骤3.2、依据当前视觉层级的高度变化速度,动态设置所述分层调节参数;
69.动态设置所述分层调节参数的方式如下:
70.当视觉层级的高度变化速度在4500米以上时,所述分层调节参数的取值为1.25;当视觉层级的高度变化速度在3000米到4500米时,所述分层调节参数的取值为1.50;当视觉层级的高度变化速度在1500米到3000米时,所述分层调节参数的取值1.75;当视觉层级的高度变化速度小于1500米时,所述分层调节参数的取值为2.0。
71.步骤3.3、依据设置的分层调节参数,按照公式计算得出屏幕空间误差,当屏幕空间误差x大于给定的最大屏幕空间误差时则加载当前层级下的瓦片数据,其中,y为屏幕空间误差,a为几何误差,k为当前网速对应的网络带宽变量,d为瓦片与相机的距离,m为分层调节参数。
72.根据相机视觉层级的高度变化速度,动态改变参数m,控制浏览器的瓦片加载数量,大大提高了浏览器的在分层加载时的灵活性。同时,数据加载公式依然引入了步骤2中的带宽参数k,其主要目的是,在高度层级速度的变化过程中,宽带大小决定了浏览器的对数据的响应速度。在对瓦片数据是否进行加载时,由视觉高度、网络带宽、高度变化速度等多参数共同决定。通过优化后的数据加载公式,可在浏览器端适应不同环境下的应用加载模式,例如在倾斜数据量偏大时、网络带宽较差时、视觉切换较快时,可根据不同的数据加载环境下,加载不同的数据范围,可让系统适应性更强、响应速度更快、稳定性更好!
73.通过上述三个步骤后,倾斜数据通过系统加载到前端浏览器。但由于倾斜数据量普通偏大的特点,易造成浏览器剔除数据缓存不及时,浏览器崩溃现象。通过步骤1,倾斜数据的存储方式通过线性八叉树进行切片。其中,索引文件记录了各个文件的层级关系及属性信息。并且依靠多级lod层级特点,对传统多区域数据缓存方法进行改造,将传统的视锥体裁剪进行优化,改造成基于相机视点缓存剔除。
74.步骤4、将加载到前端浏览器的倾斜数据进行内存优化管理,具体步骤为:
75.步骤4.1、浏览器通过瓦片数据与相机视点的距离对瓦片数据进行优先排序,距离越近的,在加载队列中排序靠前;距离较远的,排序靠后;
76.步骤4.2、浏览器随着相机视角范围的变化,将已加载完成的瓦片数据进入缓存队
列的尾部,并在浏览器的本地存储中记录此瓦片数据的元数据信息;
77.步骤4.3、当队列中的瓦片数据大于浏览器最大内存阈值时,根据元数据信息,动态清除位于缓存队列尾部的数据。
78.通过步骤4所述的这种方式,可及时删除缓存区域数据,保障浏览器的正常运行。
79.本发明在传统加载方法主要通过给定的最大屏幕空间误差以及瓦片元数据信息计算得到的屏幕空间误差比较来判断是否加载当前瓦片数据的基础上,基于网络带宽的实际响应能力以及各层级数据的切换能力,引入了客户端实际网络环境的变量以及分层渲染调节参数,在判断当前瓦片是否满足加载条件时以及数据分层渲染调节时更加精准,保障系统能够平滑过渡由粗到细的加载问题;同时,由于充分考虑了客户端实际加载的网络环境,优化了传统的加载模式,使得相机视角下瓦片数据的加载更加准确,减轻了系统的绘制压力,提高了加载和渲染效率。
80.以上对本发明所提供的技术方案进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献