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

一种虚幻引擎中摄影测量模型的数据组织和调度方法与流程

2021-11-09 22:48:00 来源:中国专利 TAG:


1.本技术涉及数字孪生技术领域,特别是涉及一种虚幻引擎中摄影测量模型的数据组织和调度方法、装置、计算机设备和存储介质。


背景技术:

2.数字孪生城市则是面向新型智慧城市的一套复杂技术和应用体系(顾建祥et al.,n.d.),其建设已上升至国家战略层面(郭仁忠et al.,2020)。在智慧城市背景下,数字孪生可以针对一个地区,建立一个能够可视化的高保真三维场景用于支持测试与决策(et al.,2018),因此,首先需要构建带有位置信息的统一的空间“数据底板”,将城市真实的地理坐标在虚拟环境中进行呈现(mao,2014)。
3.倾斜摄影测量模型是实现数字孪生城市不可或缺的数据底板。相较于基于四叉树划分的瓦片金字塔结构,倾斜摄影测量模型在瓦片金字塔的上层部分会对根节点额外进行模型几何抽稀和纹理降秩压缩,现有技术中的数据组织方式并不适合游戏引擎,同时传统数据调度方法并不符合游戏引擎改进后的数据组织方式。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够适应虚幻引擎数据的虚幻引擎中摄影测量模型的数据组织和调度方法、装置、计算机设备和存储介质。
5.一种虚幻引擎中摄影测量模型的数据组织和调度方法,所述方法包括:
6.获取摄影测量模型的osgb数据,将所述osgb数据转换为虚幻引擎中的uasset格式数据;所述osgb数据中包括网格模型和对应的纹理图片;所述摄影测量模型中包括多个瓦片树;
7.删除所述瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;
8.在当前帧,通过视锥体裁切得到所述重构四叉树中处在视野范围内的瓦片树,遍历所述视野范围内的瓦片树的节点,获取当前节点的所述网格模型的面积和对应的所述纹理图片的分辨率,根据所述网格模型的面积和所述纹理图片的分辨率得到所述当前节点对应级别的当前节点误差,当所述当前节点误差不大于屏幕显示的误差时,请求加载所述当前节点;
9.对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。
10.在其中一个实施例中,还包括:删除所述瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;所述虚拟节点为无数据空节点。
11.在其中一个实施例中,还包括:获取视椎体;为所述重构四叉树中的瓦片树构建包围盒;若所述包围盒与所述视椎体相交,则判断所述包围盒对应的瓦片树处在视野范围内。
12.在其中一个实施例中,还包括:根据所述网格模型的面积和所述纹理图片的分辨率得到所述当前节点对应级别的当前节点误差为:
[0013][0014]
其中,ngpe表示所述当前节点误差,a表示所述网格模型的面积;b表示所述纹理图片的分辨率。
[0015]
在其中一个实施例中,还包括:所述重构四叉树中,层数越深,所述当前节点误差ngpe值越小。
[0016]
在其中一个实施例中,还包括:将所述节点投影到视锥体的近平面,计算当前视点下显示屏中每单位像素的近似瓦片面积为:
[0017][0018]
其中,sgpe为所述近似瓦片面积,d表示视锥体视点与所述节点之间的距离,fov表示平截头体的视野,sr表示屏幕分辨率,tan(
·
)表示正切三角函数;
[0019]
以所述近似瓦片面积为屏幕显示的误差;
[0020]
当所述当前节点误差不大于屏幕显示的误差时,请求加载所述当前节点。
[0021]
一种虚幻引擎中摄影测量模型的数据组织和调度装置,所述装置包括:
[0022]
osgb数据获取模块,用于获取摄影测量模型的osgb数据,将所述osgb数据转换为虚幻引擎中的uasset格式数据;所述osgb数据中包括网格模型和对应的纹理图片;所述摄影测量模型中包括多个瓦片树;
[0023]
重构四叉树构建模块,用于删除所述瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;
[0024]
数据调度模块,用于在当前帧,通过视锥体裁切得到所述重构四叉树中处在视野范围内的瓦片树,遍历所述视野范围内的瓦片树的节点,获取当前节点的所述网格模型的面积和对应的所述纹理图片的分辨率,根据所述网格模型的面积和所述纹理图片的分辨率得到所述当前节点对应级别的当前节点误差,当所述当前节点误差不大于屏幕显示的误差时,请求加载所述当前节点;
[0025]
可视化模块,用于对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。
[0026]
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0027]
获取摄影测量模型的osgb数据,将所述osgb数据转换为虚幻引擎中的uasset格式数据;所述osgb数据中包括网格模型和对应的纹理图片;所述摄影测量模型中包括多个瓦片树;
[0028]
删除所述瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;
[0029]
在当前帧,通过视锥体裁切得到所述重构四叉树中处在视野范围内的瓦片树,遍历所述视野范围内的瓦片树的节点,获取当前节点的所述网格模型的面积和对应的所述纹理图片的分辨率,根据所述网格模型的面积和所述纹理图片的分辨率得到所述当前节点对
应级别的当前节点误差,当所述当前节点误差不大于屏幕显示的误差时,请求加载所述当前节点;
[0030]
对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。
[0031]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0032]
获取摄影测量模型的osgb数据,将所述osgb数据转换为虚幻引擎中的uasset格式数据;所述osgb数据中包括网格模型和对应的纹理图片;所述摄影测量模型中包括多个瓦片树;
[0033]
删除所述瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;
[0034]
在当前帧,通过视锥体裁切得到所述重构四叉树中处在视野范围内的瓦片树,遍历所述视野范围内的瓦片树的节点,获取当前节点的所述网格模型的面积和对应的所述纹理图片的分辨率,根据所述网格模型的面积和所述纹理图片的分辨率得到所述当前节点对应级别的当前节点误差,当所述当前节点误差不大于屏幕显示的误差时,请求加载所述当前节点;
[0035]
对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。
[0036]
上述虚幻引擎中摄影测量模型的数据组织和调度方法、装置、计算机设备和存储介质,通过获取摄影测量模型的osgb数据,将osgb数据转换为虚幻引擎中的uasset格式数据;删除摄影测量模型瓦片树中非四叉树划分的冗余数据,按照四叉树结构向上重构虚拟节点,得到重构四叉树;通过视锥体裁切得到重构四叉树中处在视野范围内的瓦片树,遍历视野范围内的瓦片树的节点,获取当前节点的网格模型的面积和对应的纹理图片的分辨率,根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差,当当前节点误差不大于屏幕显示的误差时,请求加载当前节点;对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。本发明提出了基于满秩四叉树的倾斜摄影模型的数据重组织方法,以及将瓦片的网格稀疏程度与对应的纹理大小联系起来作为瓦片精细程度的判断标准,精简了加载数据,提升了效率,实现了不依赖数据层级关系的数据调度。
附图说明
[0037]
图1为一个实施例中虚幻引擎中摄影测量模型的数据组织和调度方法的流程示意图;
[0038]
图2为一个实施例中倾斜摄影测量模型的瓦片金字塔模型示意图;
[0039]
图3为一个实施例中删除了冗余数据的瓦片金字塔示意图;
[0040]
图4为一个实施例中上层为虚拟节点下层为真实节点的重构四叉树示意图;
[0041]
图5为一个实施例中视锥体裁切原理示意图;
[0042]
图6为一个实施例中sgpe的计算原理示意图;
[0043]
图7为一个实施例中倾斜摄影测量瓦片的数据组成示意图;
[0044]
图8为一个实施例中在固定相机路径下从视野高度较高到视野高度较低的索引效率对比结果示意图;
[0045]
图9为一个实施例中虚幻引擎中摄影测量模型的可视化装置的结构框图;
[0046]
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
[0047]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0048]
本技术提供的虚幻引擎中摄影测量模型的数据组织和调度方法,可以应用于如下应用环境中。其中,终端执行一种虚幻引擎中摄影测量模型的数据组织和调度方法,通过获取摄影测量模型的osgb数据,将osgb数据转换为虚幻引擎中的uasset格式数据;删除摄影测量模型瓦片树中非四叉树划分的冗余数据,按照四叉树结构向上重构虚拟节点,得到重构四叉树,将瓦片的网格稀疏程度与对应的纹理大小联系起来作为瓦片精细程度的判断标准,实现不依赖数据生产已有层级关系的数据调度。其中,终端可以但不限于是各种个人计算机、笔记本电脑和平板电脑。
[0049]
在一个实施例中,如图1所示,提供了一种虚幻引擎中摄影测量模型的数据组织和调度方法,包括以下步骤:
[0050]
步骤102,获取摄影测量模型的osgb数据,将osgb数据转换为虚幻引擎中的uasset格式数据。
[0051]
倾斜摄影测量模型是构建数字孪生城市场景最重要的基础数据之一,一个城市级别的三维场景数据集可能由上亿个三角形组成。相较于基于四叉树划分的瓦片金字塔结构,倾斜摄影测量模型在瓦片金字塔的上层部分会对根节点额外进行模型几何抽稀和纹理降秩压缩,如图2所示,且由于每块区域的原始数据量不同,对于不同瓦片树来说非四叉树划分层数并不相等,瓦片金字塔的下层部分按照四叉树结构进行划分。
[0052]
国内倾斜摄影数据多是以osgb数据格式存储的,osgb数据格式是三维引擎定义的数据格式,使用二进制存储,可以加快计算机读取。osgb数据中包括网格模型和对应的纹理图片。
[0053]
步骤104,删除瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树。
[0054]
本发明提出了如下的重组织方法:
[0055]
(1)删除非四叉树划分层级,使瓦片树都符合四叉树数据结构划分,如图3所示。但由于不同瓦片树非四叉树划分层级取决于对应区域的数据量大小,在删除之后不同瓦片树的深度并不一致;
[0056]
(2)对所有瓦片树继续按照四叉树结构向上重构虚拟节点(按照地理范围向上构建四叉树的节点,但无真实数据仅充当索引作用),最终合成一个由上层为虚拟节点下层为真实节点的一颗四叉树如图4所示。其中层级与瓦片精细程度无关,因此不能采用与层级数相关的调度方法。
[0057]
步骤106,在当前帧,通过视锥体裁切得到重构四叉树中处在视野范围内的瓦片
树,遍历视野范围内的瓦片树的节点,获取当前节点的网格模型的面积和对应的纹理图片的分辨率,根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差,当当前节点误差不大于屏幕显示的误差时,请求加载当前节点。
[0058]
人眼作为透视投影视点的视觉空间是一个圆锥体,视锥体用来模拟这样的视觉空间。由于倾斜摄影模型数据量比较大,且对应瓦片数据层级关系复杂,不能一次性全部加载入内存。当用户浏览数据时只观察到处在视锥体范围内的瓦片,再通过场景调度原则确定所需要加载瓦片的对应细节层次,cpu计算完成需要加载的瓦片后,将需要绘制的三角形发送给gpu,通过这一过程可以极大地提高数据调度的效率。
[0059]
例如,在图5中,我们为场景中的每个对象创建了一个包围盒。如果包围盒没有与视锥体相交,我们就不需要将对象添加到加载队列中。因此,视锥体裁剪可以大大降低客户端在后期场景渲染中的处理压力。
[0060]
步骤108,对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。
[0061]
上述虚幻引擎中摄影测量模型的数据组织和调度方法中,通过删除摄影测量模型瓦片树中非四叉树划分的冗余数据,按照四叉树结构向上重构虚拟节点,得到重构四叉树;通过视锥体裁切得到重构四叉树中处在视野范围内的瓦片树,遍历视野范围内的瓦片树的节点,获取当前节点的网格模型的面积和对应的纹理图片的分辨率,根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差,当当前节点误差不大于屏幕显示的误差时,请求加载当前节点,对请求加载的节点的uasset格式数据进行数据调度,用于虚幻引擎中摄影测量模型的可视化。本发明提出了基于满秩四叉树的倾斜摄影模型的数据重组织方法,以及将瓦片的网格稀疏程度与对应的纹理大小联系起来作为瓦片精细程度的判断标准,精简了加载数据,提升了效率,实现了不依赖数据层级关系的数据调度。
[0062]
在其中一个实施例中,还包括:删除瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;虚拟节点为无数据空节点。
[0063]
虚拟节点无真实数据仅充当索引作用。
[0064]
在其中一个实施例中,还包括:获取视椎体;为重构四叉树中的瓦片树构建包围盒;若包围盒与视椎体相交,则判断包围盒对应的瓦片树处在视野范围内。
[0065]
在其中一个实施例中,还包括:根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差为:
[0066][0067]
其中,ngpe表示当前节点误差,a表示网格模型的面积;b表示纹理图片的分辨率。
[0068]
由于在同一树级别上使用了层级精度不一致的统一金字塔,因此现有技术中仅由瓦片范围定义的参数无法准确描述瓦片的精度。但是,瓦片由网格和纹理组成,它们可以用来解释瓦片精度。随着层数的增加,瓦片对应的表面积越来越小,其纹理中的像素数在相邻层级之间相似,并在多个层级之间呈现增加趋势。因此,公式中的ngpe代表了每个节点级别中单位像素的几何网格面积,可以用来区分不同级别的不同网格面积的节点。
[0069]
在其中一个实施例中,还包括:重构四叉树中,层数越深,当前节点误差ngpe值越小。
[0070]
在其中一个实施例中,还包括:将节点投影到视锥体的近平面,计算当前视点下显示屏中每单位像素的近似瓦片面积为:
[0071][0072]
sgpe的计算原理如图6所示,其中,sgpe为近似瓦片面积,d表示视锥体视点与节点之间的距离,fov表示平截头体的视野,sr表示屏幕分辨率,tan(
·
)表示正切三角函数;
[0073]
以近似瓦片面积为屏幕显示的误差;当当前节点误差不大于屏幕显示的误差时,请求加载当前节点,即当ngpe大于sgpe时,节点对应级别的误差大于屏幕显示的误差,继续遍历。否则,加载当前节点。这样,对于不同生产标准下的倾斜摄影测量模型,可以实现多区域瓦片树之间的统一标准加载。此外,它们可以重组为场景树进行加载调度,这对于融合多源数据和建立统一的空间参考具有重要意义。例如,图7说明了18层瓦片和20层瓦片的数据。层数越深的数据ngpe值越小,沿着四叉树遍历节点选择合适的层级。
[0074]
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0075]
在一个具体实施例中,针对统一四叉树方法设置了一组控制实验,本实验采用的实验环境cpu:inter(r)core(tm)i7

9750h cpu@2.60ghz。对基于块的四叉树和重构虚拟节点四叉树的场景遍历下的索引效率进行对比,设置了由视野高度较高到视野高度较低的固定路径作为相机轨迹,加载瓦片有较多的粗糙层级到瓦片数量较少的精细层级,对比结果如图8所示,可以看出随着加载层级越来越精细,重构虚拟节点的索引效率更高,适合于在大规模hlod的倾斜摄影模型作为索引方案。
[0076]
在一个实施例中,如图9所示,提供了一种虚幻引擎中摄影测量模型的数据组织和调度装置,包括:osgb数据获取模块902、重构四叉树构建模块904、数据调度模块906和可视化模块908,其中:
[0077]
osgb数据获取模块902,用于获取摄影测量模型的osgb数据,将osgb数据转换为虚幻引擎中的uasset格式数据;osgb数据中包括网格模型和对应的纹理图片;摄影测量模型中包括多个瓦片树;
[0078]
重构四叉树构建模块904,用于删除瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;
[0079]
数据调度模块906,用于在当前帧,通过视锥体裁切得到重构四叉树中处在视野范围内的瓦片树,遍历视野范围内的瓦片树的节点,获取当前节点的网格模型的面积和对应的纹理图片的分辨率,根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差,当当前节点误差不大于屏幕显示的误差时,请求加载当前节点;
[0080]
可视化模块908,用于对请求加载的节点的uasset格式数据进行数据调度,用于虚
幻引擎中摄影测量模型的可视化。
[0081]
重构四叉树构建模块904还用于删除瓦片树中非四叉树划分的冗余数据,对删除了冗余数据的瓦片树按照四叉树结构向上重构虚拟节点,得到重构四叉树;虚拟节点为无数据空节点。
[0082]
数据调度模块906还用于获取视椎体;为重构四叉树中的瓦片树构建包围盒;若包围盒与视椎体相交,则判断包围盒对应的瓦片树处在视野范围内。
[0083]
数据调度模块906还用于根据网格模型的面积和纹理图片的分辨率得到当前节点对应级别的当前节点误差为:
[0084][0085]
其中,ngpe表示当前节点误差,a表示网格模型的面积;b表示纹理图片的分辨率。
[0086]
数据调度模块906还用于将节点投影到视锥体的近平面,计算当前视点下显示屏中每单位像素的近似瓦片面积为:
[0087][0088]
其中,sgpe为近似瓦片面积,d表示视锥体视点与节点之间的距离,fov表示平截头体的视野,sr表示屏幕分辨率,tan(
·
)表示正切三角函数;
[0089]
以近似瓦片面积为屏幕显示的误差;当当前节点误差不大于屏幕显示的误差时,请求加载当前节点。
[0090]
关于虚幻引擎中摄影测量模型的数据组织和调度装置的具体限定可以参见上文中对于虚幻引擎中摄影测量模型的数据组织和调度方法的限定,在此不再赘述。上述虚幻引擎中摄影测量模型的数据组织和调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0091]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种虚幻引擎中摄影测量模型的数据组织和调度方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0092]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0093]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有
计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
[0094]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
[0095]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0096]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0097]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献