一种三维模型数据加载方法和装置制造方法

文档序号:6503648阅读:167来源:国知局
一种三维模型数据加载方法和装置制造方法
【专利摘要】本发明实施例公开了一种三维模型数据加载方法和装置,方法包括:确定终端屏幕显示的地图中心所在的区域块;确定出与地图中心当前所在区域块的距离小于预置的第一距离阈值的目标区域块;提取地图中心当前所在区域块以及所述目标区域块的三维模型数据;将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内存空间,本发明技术方案,加载三维模型数据时,只需加载地图中心所在区域块以及距离地图中心所在区域块较近的部分区域块的三维模型数据,不需要加载所有落入终端屏幕的三维模型的三维模型数据,与现有技术的一次性加载所有落入终端屏幕的三维模型数据相比,提高了数据加载的速度,从而提高后续进行三维电子地图渲染的速度和效率。
【专利说明】一种三维模型数据加载方法和装置

【技术领域】
[0001] 本发明涉及三维电子地图领域,特别是涉及一种三维模型数据加载方法和装置。

【背景技术】
[0002] 传统的三维导航,其三维场景并不是基于真实城市场景渲染出来的,而是根据一 定的规则对建筑进行统一的纹理渲染,也就是说,三维模型的形状只有有限的几种,外观纹 理较为简单、不具有真实建筑的真实特征。所以这种三维导航的三维模型的三维模型数据 的总数据量很小,可以在导航软件的初始化过程中,直接将所有落入终端屏幕的三维模型 的三维模型数据预先加载在终端的内存空间中,在导航过程中只需要直接从内存空间中将 三维模型数据读取到终端的显存空间中即可完成三维电子地图的渲染,避免了在导航过程 中还需要从数据库中查找三维模型数据,由此保持了导航软件运行的平滑性。
[0003] 然而,这样生成的三维场景不是基于真实的街道建筑渲染出来的,并不能反映导 航车辆周围真实的环境特征,因此三维导航效果不好。因此,越来越多的用户更加希望三维 导航所显示的街边建筑与处在导航车辆中所看到的周边环境的真实建筑能够在外观上保 持一致。由于逼真的三维场景,基本上每一个三维模型的形状和外观纹理都是不同的,因此 需要构建大量的三维模型,需要加载的三维模型数据量非常庞大,若采用目前的三维模型 数据的加载方式将可能存在以下技术问题:
[0004] 由于加载到内存空间中的三维模型数据非常庞大,在导航过程中进行三维电子地 图渲染时,仍然需要从内存空间中读取大量的三维模型数据,三维地图渲染的速度和效率 较低,用户体验差。并且,由于终端的内存空间普遍偏小,很有可能并不能成功将三维模型 数据均加载到内存空间中,因此后续的三维电子地图渲染过程中,还需要从数据库中加载 一些三维模型数据,三维模型数据加载效率较低。如何有效的加载和读取三维模型数据是 一个亟需解决的技术问题。


【发明内容】

[0005] 为了解决上如何有效加载三维模型数据的技术问题,本发明提供了一种三维模型 数据加载方法和装置。
[0006] 本发明实施例公开了如下技术方案:
[0007] -种三维模型数据加载方法,包括:
[0008] 确定终端屏幕显示的地图中心所在的区域块;
[0009] 确定出与地图中心当前所在区域块的距离小于预置的第一距离阈值的目标区域 块;
[0010] 提取地图中心当前所在区域块以及所述目标区域块的三维模型数据;
[0011] 将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内存空间。
[0012] 优选的,将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内存 空间之前,所述方法进一步包括:
[0013] 根据提取的三维模型数据,计算三维模型数据对应的三维模型与地图中心的距 离;
[0014] 将所述三维模型数据中未被加载的三维模型数据加载到终端的内存空间,具体 为:
[0015] 按照所述位置距离从小到大的顺序,依次将未被加载到所述内存空间的三维模型 数据加载到所述内存空间中。
[0016] 优选的,所述方法进一步包括:
[0017] 按照所述位置距离从小到大的顺序,依次读取所述内存空间中未被读取的三维模 型数据到显存空间中;
[0018] 根据所述显存空间中的三维模型数据渲染三维电子地图。
[0019] 优选的,所述方法进一步包括:
[0020] 当读取到所述显存空间中的三维模型数据的总数据量达到预设的数据量阈值时, 停止从所述内存空间读取三维模型数据。
[0021] 优选的,将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内存 空间,具体包括:
[0022] 获取地图中心当前所在区域块以及目标区域块的加载标志位;
[0023] 当区域块的加载标志位为未加载标志,则确定所述区域块中的三维模型数据未被 加载,并将该区域块的三维模型数据加载到所述内存空间中。
[0024] 优选的,若终端屏幕显示的地图中心所在的区域块变更为另一区域块,则所述方 法进一步包括:
[0025] 从所述内存空间中移除与所述另一区域块的距离大于所述第一距离阈值的区域 块中三维模型数据。
[0026] 优选的,若终端屏幕显示的地图中心所在的区域块变更为另一区域块,则所述方 法进一步还包括:
[0027] 从所述显存空间中移除与所述另一区域块的距离大于第二距离阈值的区域块中 的三维模型数据。
[0028] 一种三维模型数据加载装置,包括:
[0029] 地图中心区域块确定单元,用于确定终端屏幕显示的地图中心所在的区域块;
[0030] 目标区域块确定单元,用于确定出与地图中心当前所在区域块的距离小于预置的 第一距离阈值的目标区域块;
[0031] 三维模型数据提取单元,用于提取地图中心当前所在区域块以及所述目标区域块 的三维模型数据;
[0032] 加载单元,用于将所述三维模型数据中未被加载的三维模型数据加载到所述终端 的内存空间。
[0033] 优选的,所述装置还包括:
[0034] 距离计算单元,用于在所述加载单元将所述三维模型数据中未被加载的三维模型 数据加载到所述终端的内存空间之前,根据提取的三维模型数据,计算三维模型数据对应 的三维模型与地图中心的距离;
[0035] 加载单元具体用于,按照所述位置距离从小到大的顺序,依次将未被加载到所述 内存空间的三维模型数据加载到所述内存空间中。
[0036] 优选的,所述装置还包括:
[0037] 读取单元,用于按照所述位置距离从小到大的顺序,依次读取所述内存空间中未 被读取的三维模型数据到显存空间中;
[0038] 渲染单元,用于根据所述显存空间中的三维模型数据渲染三维电子地图。
[0039] 优选的,所述读取单元进一步用于,当读取到所述显存空间中的三维模型数据的 总数据量达到预设的数据量阈值时,停止从所述内存空间读取三维模型数据。
[0040] 优选的,所述加载单元,具体用于:
[0041] 获取地图中心当前所在区域块以及目标区域块的加载标志位;
[0042] 当区域块的加载标志位为未加载标志,则确定所述区域块中的三维模型数据未被 加载,并将该区域块的三维模型数据加载到所述内存空间中。
[0043] 优选的,所述装置还包括:
[0044] 第一移除单元,用于在终端屏幕显示的地图中心所在的区域块变更为另一区域块 时,从所述内存空间中移除与所述另一区域块的距离大于所述第一距离阈值的区域块中的 三维模型数据。
[0045] 优选的,所述装置还包括:
[0046] 第二移除单元,用于在终端屏幕显示的地图中心所在的区域块变更为另一区域块 时,从所述显存空间中移除与所述另一区域块的距离大于第二距离阈值的区域块中的三维 模型数据。
[0047] 本发明技术方案中,首先将三维电子地图划分成均等大小的区域块,在使用三维 电子地图时,确定终端屏幕显示的地图中心所在的区域块,并确定出与地图中心当前所在 区域块的距离小于预置的第一距离阈值的目标区域块,提取地图中心当前所在区域块以及 所述目标区域块的三维模型数据,并将所述三维模型数据中未被加载的三维模型数据加载 到所述终端的内存空间。采用本发明技术方案,加载三维模型数据时,只需加载地图中心所 在区域块以及距离地图中心所在区域块较近的部分区域块的三维模型数据即可,不需要加 载所有落入到终端屏幕的所有三维模型的三维模型数据,因此,与现有技术的一次性加载 所有落入终端屏幕的三维模型的三维模型数据相比,提高了数据加载的速度,从而提高后 续进行三维电子地图渲染的速度和效率。

【专利附图】

【附图说明】
[0048] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
[0049] 图1为本发明实施例中三维模型数据加载方法的方法流程图之一;
[0050] 图la为本发明实施例中三维模型数据加载方法的方法流程图之二;
[0051] 图lb为本发明实施例中三维模型数据加载方法的方法流程图之三;
[0052] 图2a为本发明实施例中在三维导航过程中需要加载三维模型数据的区域块分布 图;
[0053] 图2b为基于图2a所示的实施例中,导航车辆当前所在区域块发生变化后需要加 载三维模型数据的区域块的分布图;
[0054] 图3a、图3b为本发明实施例中渲染得到的三维电子地图的效果图;
[0055] 图4为本发明实施例中三维模型数据加载装置的结构示意图之一;
[0056] 图5为本发明实施例中三维模型数据加载装置的结构示意图之二;
[0057] 图6为本发明实施例中三维模型数据加载装置的结构示意图之三;
[0058] 图7为本发明实施例中三维模型数据加载装置的结构示意图之四;
[0059] 图8为本发明实施例中三维模型数据加载装置的结构示意图之五。

【具体实施方式】
[0060] 本发明实施例提供了 一种三维模型数据加载方法和装置,以提高三维模型数据的 加载效率,从而提高三维电子地图渲染的速度和效率。
[0061] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明 实施例进行详细描述。
[0062] 实施例一
[0063] 请参阅图1,其为本发明一种三维模型数据加载方法的方法流程图,该方法包括以 下步骤:
[0064] S101 :确定终端屏幕显示的地图中心所在的区域块;
[0065] 针对所述区域块来说,现有技术中一般将整张三维电子地图以一定大小分成若干 份,每一份称为标准图幅,再将标准图幅分成η乘以m等份的区域块。优选的,为便于存储 和计算,一般将标准图幅分为16X16等份、25X25等份或者49X49等份的区域块。
[0066] 还需要说明的是,本发明的技术方案不局限于三维导航的应用场景,还可以是三 维电子地图查询(如在三维电子地图查找某一 Ρ0Ι),还可以是拖动三维电子地图进行随意 的查看。但是三种应用场景的核心点在于,在显示三维电子地图时,都是以地图中心为基准 点来显示周边环境。预先将终端的某一个屏幕坐标点设定为中心点(该中心点可以是位于 终端屏幕正中间的位置,也可以是稍微偏离正中间的位置),将三维电子地图中落在所述中 心点的位置确定为地图中心。在导航过程中,将导航车辆当前所在位置显示在该中心点;三 维电子地图查询时,将查询得到的Ρ0Ι显示在该中心点。
[0067] S102 :确定出与地图中心当前所在区域块的距离小于预置的第一距离阈值的目标 区域块;
[0068] 这里需要注意的是,第一距离阈值是一个预先设定的值,第一距离阈值的大小与 终端的内存空间的大小是成一定比例关系的,也就是说,终端的内存空间越大则第一距离 阈值取值越大,内存空间越小则第一距离阈值取值越小。
[0069] 其次,使用区域块作为判断单位,只需要判断一个区域块与当前终端屏幕显示的 地图中心所在的区域块之间的距离是否小于第一距离阈值即可统一的认定这个区域块中 的所有三维模型到所述地图中心所在区域块的距离也小于第一距离阈值,而不需要在从数 据库中加载三维模型的三维模型数据时还需要计算每一个三维模型与地图中心之间的距 离,在一定程度上减少了计算量,提高了计算效率,从而提高三维模型数据的加载效率。
[0070] S103 :提取地图中心当前所在区域块以及所述目标区域块的三维模型数据;
[0071] 本发明实施例中的三维模型主要包括建筑模型、立交桥模型、道路模型等,三维模 型数据包括顶点数据和纹理数据。顶点数据是指在三维电子地图中所显示的三维模型的外 形数据(即绘制三维模型的外形轮廓的数据),而纹理数据是指在三维模型外形上进行外 观渲染的数据。其中顶点数据的总数据量只占三维模型数据的很小一部分,故在某些实际 操作的过程中,可以预先将落在终端屏幕上的所有三维模型的三维模型数据中的顶点数据 直接加载到内存空间中,而针对三维模型数据中的纹理数据可采用前述方式逐步加载到内 存空间中;当然,提取的三维模型数据中是否必须包含顶点数据本发明对此并不进行限定。
[0072] S104 :将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内存空 间。
[0073] 优选的,在前述S103与S104之间还可包括以下步骤S103a,如图la所示:
[0074] S103a、根据提取的三维模型数据,计算三维模型数据对应的三维模型与地图中心 的距离;
[0075] 此时,前述S104将所述三维模型数据中未被加载的三维模型数据加载到终端的 内存空间,具体为:
[0076] 按照所述位置距离从小到大的顺序,依次将未被加载到所述内存空间的三维模型 数据加载到所述内存空间中。
[0077] 本发明实施例中,前述S103a中,计算三维模型与地图中心的距离,可以是根据三 维模型对应的三维模型数据中的经纬度坐标和地图中心点的经纬度坐标进行计算三维模 型与地图中心的距离。
[0078] 首先需要说明的是,优选的,所述计算三维模型与地图中心的距离,可以是三维模 型与所述地图中心之间的直线距离、曲线距离或者还可以是球面距离,为简化计算量,本发 明技术方案,计算三维模型与所述地图中心之间的距离,具体根据下式得到:
[0079] 位置距离

【权利要求】
1. 一种三维模型数据加载方法,其特征在于,包括: 确定终端屏辱显不的地图中心所在的区域块; 确定出与地图中心当前所在区域块的距离小于预置的第一距离阈值的目标区域块; 提取地图中心当前所在区域块以及所述目标区域块的三维模型数据; 将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内存空间。
2. 根据权利要求1所述的方法,其特征在于,将所述三维模型数据中未被加载的三维 模型数据加载到所述终端的内存空间之前,所述方法进一步包括: 根据提取的三维模型数据,计算三维模型数据对应的三维模型与地图中心的距离; 将所述三维模型数据中未被加载的三维模型数据加载到终端的内存空间,具体为: 按照所述位置距离从小到大的顺序,依次将未被加载到所述内存空间的三维模型数据 加载到所述内存空间中。
3. 根据权利要求2所述的方法,其特征在于,所述方法进一步包括: 按照所述位置距离从小到大的顺序,依次读取所述内存空间中未被读取的三维模型数 据到显存空间中; 根据所述显存空间中的三维模型数据渲染三维电子地图。
4. 根据权利要求3所述的方法,其特征在于,所述方法进一步包括: 当读取到所述显存空间中的三维模型数据的总数据量达到预设的数据量阈值时,停止 从所述内存空间读取三维模型数据。
5. 根据权利要求1-4中任一项权利要求所述的方法,其特征在于,将所述三维模型数 据中未被加载的三维模型数据加载到所述终端的内存空间,具体包括: 获取地图中心当前所在区域块以及目标区域块的加载标志位; 当区域块的加载标志位为未加载标志,则确定所述区域块中的三维模型数据未被加 载,并将该区域块的三维模型数据加载到所述内存空间中。
6. 根据权利要求1?4任一项权利要求所述的方法,其特征在于,若终端屏幕显示的地 图中心所在的区域块变更为另一区域块,则所述方法进一步包括: 从所述内存空间中移除与所述另一区域块的距离大于所述第一距离阈值的区域块中 的三维模型数据。
7. 根据权利要求3或4所述的方法,其特征在于,若终端屏幕显示的地图中心所在的区 域块变更为另一区域块,则所述方法进一步还包括: 从所述显存空间中移除与所述另一区域块的距离大于第二距离阈值的区域块中的三 维模型数据。
8. -种三维模型数据加载装置,其特征在于,包括: 地图中心区域块确定单元,用于确定终端屏幕显示的地图中心所在的区域块; 目标区域块确定单元,用于确定出与地图中心当前所在区域块的距离小于预置的第一 距离阈值的目标区域块; 三维模型数据提取单元,用于提取地图中心当前所在区域块以及所述目标区域块的三 维模型数据; 加载单元,用于将所述三维模型数据中未被加载的三维模型数据加载到所述终端的内 存空间。
9. 根据权利要求8所述的装置,其特征在于,还包括距离计算单元: 距离计算单元,用于在所述加载单元将所述三维模型数据中未被加载的三维模型数据 加载到所述终端的内存空间之前,根据提取的三维模型数据,计算三维模型数据对应的三 维模型与地图中心的距离; 加载单元具体用于,按照所述位置距离从小到大的顺序,依次将未被加载到所述内存 空间的三维模型数据加载到所述内存空间中。
10. 根据权利要求9所述的装置,其特征在于,还包括: 读取单元,用于按照所述位置距离从小到大的顺序,依次读取所述内存空间中未被读 取的三维模型数据到显存空间中; 渲染单元,用于根据所述显存空间中的三维模型数据渲染三维电子地图。
11. 根据权利要求10所述的装置,其特征在于,所述读取单元进一步用于,当读取到所 述显存空间中的三维模型数据的总数据量达到预设的数据量阈值时,停止从所述内存空间 读取三维模型数据。
12. 根据权利要求8?11任一项所述的装置,其特征在于,所述加载单元,具体用于: 获取地图中心当前所在区域块以及目标区域块的加载标志位; 当区域块的加载标志位为未加载标志,则确定所述区域块中的三维模型数据未被加 载,并将该区域块的三维模型数据加载到所述内存空间中。
13. 根据权利要求8?11任一项所述的装置,其特征在于,还包括: 第一移除单元,用于在终端屏幕显示的地图中心所在的区域块变更为另一区域块时, 从所述内存空间中移除与所述另一区域块的距离大于所述第一距离阈值的区域块中的三 维模型数据。
14. 根据权利要求10或11所述的装置,其特征在于,还包括: 第二移除单元,用于在终端屏幕显示的地图中心所在的区域块变更为另一区域块时, 从所述显存空间中移除与所述另一区域块的距离大于第二距离阈值的区域块中的三维模 型数据。
【文档编号】G06T15/00GK104217456SQ201310215401
【公开日】2014年12月17日 申请日期:2013年5月31日 优先权日:2013年5月31日
【发明者】吴朝良 申请人:高德信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1