一种三维地图渲染显示方法及系统的制作方法

文档序号:8544370阅读:844来源:国知局
一种三维地图渲染显示方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机网络通信领域,尤其涉及一种三维地图渲染显示方法及三维地图渲染显示系统。
【背景技术】
[0002]现有的三维地图技术主要使用的是三角网格模型进行展示。从数据来源上可以分为航拍三维重建和点云半交互式重建三维两种方法。诺基亚的Here地图和谷歌地球都使用的是航拍影像三维重建技术得到的三维模型,然后通过细节层次(LoD,Level ofDetial)技术将城市的建筑物等信息展示给用户,如图1示出的现有技术中三维地图的展示示意图。
[0003]通过街景光探测与测量(Lidar,Light Detect1n And Ranging)设备采集的点云数据也被应用到三维地图中。不过这些点云数据主要通过一些人工处理技术结合三维重建技术生成了街景三角网格。如图2示出的中科院深圳先进技术研宄所利用LiDar设备采集的点云采用SmartBox半自动三维重建技术得到三维地图,取得了比较好的效果。
[0004]随着LiDar设备测量精度的提高,许多测量设备得到的点云数据已经达到了可以直接展示的水平,这让三维点云直接作为模型展示给用户提供了前提。然而,现有技术中,航拍三维模型的问题是模型的分辨率比较低,只能重现城市的远景,无法做到对街景进行三维漫游。而通过街景点云设备使用半自动重建技术需要耗费大量的人力,自动化程度太低,而且存在大量的无法重建的部分,比如广告牌、路灯树木等一些重建代价特别大但是又非常重要的细节,最终使得数据处理代价相当大。
[0005]因此,由于需要处理的点云数据量巨大,通过Web端来展示三维点云街景还存在很多问题,当前还没不能实现让大规模点云数据通过Web三维技术展示给用户。

【发明内容】

[0006]本发明实施例所要解决的技术问题在于,提供一种三维地图渲染显示方法及三维地图渲染显示系统,可实现让大规模点云数据通过Web三维技术展示给用户。
[0007]为了解决上述技术问题,本发明实施例第一方面公开了一种三维地图渲染显示方法,包括:
[0008]根据当前视点的地图位置信息,调用当前场景模型对应的模型文件;其中所述模型文件中的数据以八叉树结构的形式进行缓存;
[0009]通过所述八叉树结构结合当前视点的视椎体,采用预设的可见性判断算法对当前场景模型内部的所有节点进行细节层次LoD的可见性判断,以标注出所述模型文件中进入当前视点的视椎体视野范围内可见的节点与子节点;
[0010]根据标注的所述可见的节点与子节点,对进入当前视点的视椎体视野范围内的场景进行渲染并显示。
[0011]结合第一方面,在第一种可能的实现方式中,所述根据当前视点的地图位置信息,调用当前场景模型对应的模型文件之前,还包括:
[0012]通过QuadKey对获取的三维点云街景数据进行分幅处理,生成各个场景模型对应的模型文件。
[0013]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据当前视点的地图位置信息,调用当前场景模型对应的模型文件,包括:
[0014]读取当前视点的地图位置信息对应的经玮度;
[0015]查找读取的所述经玮度对应的瓦片坐标,并根据所述瓦片坐标获取所述当前视点的地图位置对应的瓦片;
[0016]通过所述瓦片获得当前场景模型对应的模型文件的路径,并通过所述模型文件的路径将模型文件调入当前场景模型的更新队列中。
[0017]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述对进入当前视点的视椎体视野范围内的场景进行渲染并显示之后,还包括:
[0018]接收输入的对所述视点的漫游操作信息;
[0019]根据所述漫游操作信息分析所述视点漫游的距离,并判断所述距离是否达到第一预设阈值;
[0020]当判断结果为是时,重新执行所述读取当前视点的地图位置信息对应的经玮度的步骤。
[0021]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述通过所述模型文件的路径将模型文件调入当前场景模型的更新队列中之后,还包括:
[0022]将不在所述当前视点的视椎体视野范围内的场景移出所述更新队列。
[0023]结合第一方面,在第五种可能的实现方式中,所述以八叉树结构的形式进行缓存的数据按照节点或子节点设置有节点编号,并按照所述节点编号进行缓存在磁盘中;
[0024]所述根据标注的所述可见的节点与子节点,对进入当前视点的视椎体视野范围内的场景进行渲染并显示,包括:
[0025]获取出标注的所述可见的节点与子节点对应的节点编号;
[0026]根据所述获取的节点编号从磁盘中找出所述可见的节点与子节点对应的缓存文件,并根据所述缓存文件对进入当前视点的视椎体视野范围内的场景进行渲染并显示。
[0027]结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,或者第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述采用预设的可见性判断算法对当前场景模型内部的所有节点进行细节层次LoD的可见性判断,包括:
[0028]判断当前层次的节点中心距离与包围盒半径的比值是否达到第二预设阈值;其中所述节点中心距离为当前场景模型中当前层次节点的包围盒中心点到当前视点的距离,所述包围盒半径为所述当前场景模型中当前层次节点的包围盒半径;
[0029]当判断结果为是时,则标注出当前场景模型中的所述节点可见,并将在所述节点下一个层次的所有子节点作为当前层次节点,返回执行所述判断当前层次的节点中心距离与包围盒半径的比值是否达到第二预设阈值的步骤;否则,不标注出当前场景中的所述节点可见。
[0030]本发明实施例第二方面公开了一种三维地图渲染显示系统,包括:
[0031]模型文件调用模块,用于根据当前视点的地图位置信息,调用当前场景模型对应的模型文件;其中所述模型文件中的数据以八叉树结构的形式进行缓存;
[0032]可见性判断模块,用于通过所述八叉树结构结合当前视点的视椎体,采用预设的可见性判断算法对当前场景模型内部的所有节点进行细节层次LoD的可见性判断,以标注出所述模型文件中进入当前视点的视椎体视野范围内可见的节点与子节点;
[0033]场景渲染显示模块,用于根据标注的所述可见的节点与子节点,对进入当前视点的视椎体视野范围内的场景进行渲染并显示。
[0034]结合第二方面,在第一种可能的实现方式中,还包括:
[0035]模型文件生成模块,用于在所述模型文件调用模块根据当前视点的地图位置信息,调用当前场景模型对应的模型文件之前,通过QuadKey对获取的三维点云街景数据进行分幅处理,生成各个场景模型对应的模型文件。
[0036]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述模型文件调用模块包括:
[0037]经玮度读取单元,用于读取当前视点的地图位置信息对应的经玮度;
[0038]查找获取单元,用于查找读取的所述经玮度对应的瓦片坐标,并根据所述瓦片坐标获取所述当前视点的地图位置对应的瓦片;
[0039]调入单元,用于通过所述瓦片获得当前场景模型对应的模型文件的路径,并通过所述模型文件的路径将模型文件调入当前场景模型的更新队列中。
[0040]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0041]信息接收模块,用于在所述场景渲染显示模块对进入当前视点的视椎体视野范围内的场景进行渲染并显示之后,接收输入的对所述视点的漫游操作信息;
[0042]距离判断模块,用于根据所述漫游操作信息分析所述视点漫游的距离,并判断所述距离是否达到第一预设阈值;并当判断结果为是时,重新触发所述经玮度读取单元执行所述读取当前视点的地图位置信息对应的经玮度的步骤。
[0043]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0044]队列移除模块,用于在所述调入单元通过所述模型文件的路径将模型文件调入当前场景模型的更新队列中之后,将不在所述当前视点的视椎体视野范围内的场景移出所述更新队列。
[0045]结合第二方面,在第五种可能的实现方式中,所述以八叉树结构的形式进行缓存的数据按照节点或子节点设置有节点编号,并按照所述节点编号进行缓存在磁盘中;
[0046]所述场景渲染显示模块包括:
[0047]节点编号获取单元,用于
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1