一种基于AR开发的资源管理方法

未命名 08-14 阅读:103 评论:0

一种基于ar开发的资源管理方法
技术领域
1.本发明涉及ar技术领域,具体为一种基于ar开发的资源管理方法。


背景技术:

2.如何实现大地形的动态加载,已经成为ar技术领域所必要解决的问题,尤其是对真实性要求比较高,需要根据真实的地形数据将其在终端硬件设备进行绘制,或者是需要美术人员利用建模软件制作的大地形。对于前者,流行的做法是利用航拍生成高度图,并利用现有的技术按照一定的比例还原场景的原貌,但鉴于生成的大地形的跨度一般达上千公里,其数据极为庞大,且受制于硬件的极限,极容易发生大地形加载缓慢的现象。。


技术实现要素:

3.为克服现有技术的不足,本发明提供了一种基于ar开发的资源管理方法,能有效地改善大地形加载缓慢的现象。
4.本发明采用了以下的技术方案。
5.一种基于ar开发的资源管理方法,其特征在于,该方法包括:
6.双线程模块化的大模型数据加载方案、基于八叉树存储结构与视锥检测的场景资源管理方案、基于深度摄像头的lod方案;
7.所述双线程模块化的大模型数据加载方案包括:将输入的场景模型数据均匀地划分为多个地块,获取视点所处的地块,按预设的地块设定规则将视点所处的地块以及与该地块相邻的多个地块设为主地块,并将与主地块相邻的多个地块设为副地块,采用主线程维护主地块,采用副线程将副地块放入缓存中;
8.所述基于八叉树存储结构与视锥检测的场景资源管理方案包括:采用包围盒包裹住输入的场景模型数据,通过八叉树结构来对含有场景数据模型的包围盒进行划分,并采用视点的视锥体来裁剪包围盒;
9.所述基于深度摄像头的lod方案包括:构建与输入的场景模型数据所对应的lod模型,通过深度摄像头采集视点的深度信息,依据采集到的深度信息调整待视的lod层级。
10.进一步,所述地块设定规则包括:将视点所处的地块以及该地块周围的8个地块设为主地块,将主地块周围的16个地块设为副地块。
11.进一步,随着视点的移动,将副线程的副地块和主线程的主地块进行切换,并依据视点新处的地块,将符合地块设定规则的地块增设为副地块,采用副线程将增设的副地块放入缓存中,并从缓存中卸载已不符合地块设定规则的地块。
12.进一步,通过八叉树结构来对含有场景模型数据的包围盒进行划分,包括:将含有场景模型数据的包围盒划分成8个子包围盒;
13.若任意的子包围盒含有场景模型数据,且该子包围盒的规格不小于设定的最小包围盒,则通过八叉树结构对该子包围盒作进一步的划分,生成新的子包围盒,直至所有的子包围盒的规格小于设定的最小包围盒,将最终得到的子包围盒作为子节点。
14.进一步,采用视点的视锥体裁剪包围盒,包括:加载位于视锥体的视野范围之内的场景模型数据,剔除位于视锥体的视野范围之外的场景模型数据。
15.进一步,依据采集到的深度信息确定并调整待视的lod层级,包括:依据采集到的深度信息获取视点与待加载场景的距离,当待加载场景到视点的距离处于人为设定的渲染距离之外时,将其所对应的子包围盒合并,并利用mesh simplifier降低该待加载场景所对应的lod层级的面数,或利用mesh simplifier将该待加载场景所对应的lod层级从多面数模型转换成少面数模型。
16.本发明的有益效果为:
17.本发明通过将输入的场景模型数据均匀地划分成多个地块,获取视点所处的地块,按预设的规则将视点所处的地块以及与该地块相邻的多个地块设为主地块,按预设的规则将与主地块相邻的多个地块视为副地块,采用主线程维护主地块,采用副线程将副地块放入缓存中;以及采用包围盒包裹住输入的场景模型数据,通过八叉树结构来对含有场景数据模型的包围盒进行划分,并采用视点的视锥体来裁剪包围盒;以及构建与输入的场景模型数据所对应的lod模型,通过深度摄像头采集视点的深度信息,依据采集到的深度信息调整待视的lod层级,从而有效地改善大地形加载缓慢的现象。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本实施例的总体方案示意图;
20.图2为本实施例的双线程模块化的大模型数据加载方案的流程示意图;
21.图3为本实施例的基于八叉树存储结构与视锥检测的场景资源管理方案、基于深度摄像头的lod方案的流程示意图;
22.图4为本实施例的通过八叉树结构来对含有场景模型数据的包围盒进行划分的流程示意图。
具体实施方式
23.附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸。
24.对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方案做进一步的说明。
25.一种基于ar开发的资源管理方法,该方法包括:双线程模块化的大模型数据加载方案、基于八叉树存储结构与视锥检测的场景资源管理方案、基于深度摄像头的lod方案。
26.其中,双线程模块化的大模型数据加载方案包括:将输入的场景模型数据均匀地划分为多个地块,获取视点所处的地块,按预设的地块设定规则将视点所处的地块以及与该地块相邻的多个地块设为主地块,并将与主地块相邻的多个地块设为副地块,采用主线程维护主地块,采用副线程将副地块放入缓存中。
27.其中,基于八叉树存储结构与视锥检测的场景资源管理方案包括:采用包围盒包
裹住输入的场景模型数据,通过八叉树结构来对含有场景数据模型的包围盒进行划分,并采用视点的视锥体来裁剪包围盒。
28.其中,基于深度摄像头的lod方案包括:构建与输入的场景模型数据所对应的lod模型,通过深度摄像头采集视点的深度信息,依据采集到的深度信息调整待视的lod层级。
29.接上述,地块设定规则包括:将视点所处的地块以及该地块周围的8个地块设为主地块,将主地块周围的16个地块设为副地块。
30.作为上述示例的进一步优化,随着视点的移动,将副线程的副地块和主线程的主地块进行切换,并依据视点新处的地块,将符合地块设定规则的地块增设为副地块,采用副线程将增设的副地块放入缓存中,并从缓存中卸载已不符合地块设定规则的地块。
31.接上述,通过八叉树结构来对含有场景模型数据的包围盒进行划分,包括:将含有场景模型数据的包围盒划分成8个子包围盒;若任意的子包围盒含有场景模型数据,且该子包围盒的规格不小于设定的最小包围盒,则通过八叉树结构对该子包围盒作进一步的划分,生成新的子包围盒,直至所有的子包围盒的规格小于设定的最小包围盒,将最终得到的子包围盒作为子节点。
32.具体的,例如在unity引擎中,包围盒所包围的范围为5个单位的立方体,中心坐标为(0,0,0),其中存在有一个边长为1的立方体模型处坐标为(1,1,1)的空间位置,在此状态下,若任意包围盒包裹有场景模型数据,且该包围盒的边长未小于预设的边长,则将该包围盒向下划分为8个子包围盒,形成子空间;接着,若得到的8个子包围盒中的、覆盖(1,1,1)坐标的任意子包围盒仍包裹有场景模型数据,且该子包围盒的边长仍大于预设的边长,则继续将该子包围盒向下划分,得到新的8个子包围盒。
33.需说明的是,若在(2,2,2)坐标中加入场景模型数据且不移除(1,1,1)坐标的场景模型数据,那么,覆盖(2,2,2)坐标的包围盒则会向下划分。
34.能理解的是,任意二个子包围盒所包含的场景模型数据可以属于二者分别所对应的子节点所共有的数据,也可以属于其父节点所存储的数据
35.采用视点的视锥体裁剪包围盒,包括:加载位于视锥体的视野范围之内的场景模型数据,剔除位于视锥体的视野范围之外的场景模型数据。
36.依据采集到的深度信息确定并调整待视的lod层级,包括:依据采集到的深度信息获取视点与待加载场景的距离,当待加载场景到视点的距离处于人为设定的渲染距离之外时,将其所对应的子包围盒合并,并利用mesh simplifier降低该待加载场景所对应的lod层级的面数,或利用mesh simplifier将该待加载场景所对应的lod层级从多面数模型转换成少面数模型,以是将远处的场景模糊化,仅细节化近处的场景,降低了gpu的运算压力。
37.显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

技术特征:
1.一种基于ar开发的资源管理方法,其特征在于,该方法包括:双线程模块化的大模型数据加载方案、基于八叉树存储结构与视锥检测的场景资源管理方案、基于深度摄像头的lod方案;所述双线程模块化的大模型数据加载方案包括:将输入的场景模型数据均匀地划分为多个地块,获取视点所处的地块,按预设的地块设定规则将视点所处的地块以及与该地块相邻的多个地块设为主地块,并将与主地块相邻的多个地块设为副地块,采用主线程维护主地块,采用副线程将副地块放入缓存中;所述基于八叉树存储结构与视锥检测的场景资源管理方案包括:采用包围盒包裹住输入的场景模型数据,通过八叉树结构来对含有场景数据模型的包围盒进行划分,并采用视点的视锥体来裁剪包围盒;所述基于深度摄像头的lod方案包括:构建与输入的场景模型数据所对应的lod模型,通过深度摄像头采集视点的深度信息,依据采集到的深度信息调整待视的lod层级。2.根据权利要求1所述的一种基于ar开发的资源管理方法,其特征在于,所述地块设定规则包括:将视点所处的地块以及该地块周围的8个地块设为主地块,将主地块周围的16个地块设为副地块。3.根据权利要求1或2所述的一种基于ar开发的资源管理方法,其特征在于,随着视点的移动,将副线程的副地块和主线程的主地块进行切换,并依据视点新处的地块,将符合地块设定规则的地块增设为副地块,采用副线程将增设的副地块放入缓存中,并从缓存中卸载已不符合地块设定规则的地块。4.根据权利要求1所述的一种基于ar开发的资源管理方法,其特征在于,通过八叉树结构来对含有场景模型数据的包围盒进行划分,包括:将含有场景模型数据的包围盒划分成8个子包围盒;若任意的子包围盒含有场景模型数据,且该子包围盒的规格不小于设定的最小包围盒,则通过八叉树结构对该子包围盒作进一步的划分,生成新的子包围盒,直至所有的子包围盒的规格小于设定的最小包围盒,将最终得到的子包围盒作为子节点。5.根据权利要求1所述的一种基于ar开发的资源管理方法,其特征在于,采用视点的视锥体裁剪包围盒,包括:加载位于视锥体的视野范围之内的场景模型数据,剔除位于视锥体的视野范围之外的场景模型数据。6.根据权利要求1所述的一种基于ar开发的资源管理方法,其特征在于,依据采集到的深度信息确定并调整待视的lod层级,包括:依据采集到的深度信息获取视点与待加载场景的距离,当待加载场景到视点的距离处于人为设定的渲染距离之外时,将其所对应的子包围盒合并,并利用mesh simplifier降低该待加载场景所对应的lod层级的面数,或利用mesh simplifier将该待加载场景所对应的lod层级从多面数模型转换成少面数模型。

技术总结
本发明提供了一种基于AR开发的资源管理方法,该方法包括:将输入的场景模型数据均匀地划分成多个地块,获取视点所处的地块,按预设的规则将视点所处的地块以及与该地块相邻的多个地块设为主地块,按预设的规则将与主地块相邻的多个地块视为副地块,采用主线程维护主地块,采用副线程将副地块放入缓存中;采用包围盒包裹住输入的场景模型数据,通过八叉树结构来对含有场景数据模型的包围盒进行划分,并采用视点的视锥体来裁剪包围盒;构建与输入的场景模型数据所对应的LOD模型,通过深度摄像头采集视点的深度信息,依据采集到的深度信息调整待视的LOD层级。本发明能有效地改善大地形加载缓慢的现象。地形加载缓慢的现象。地形加载缓慢的现象。


技术研发人员:陈正铭 许敏建 戴经国 曾祥燊
受保护的技术使用者:韶关学院
技术研发日:2023.05.19
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐