[发明专利]一种三维地图渲染显示方法及系统有效
申请号: | 201510232430.0 | 申请日: | 2015-05-08 |
公开(公告)号: | CN104867174B | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 冯路;马腾 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 广州三环专利商标代理有限公司44202 | 代理人: | 郝传鑫,熊永强 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 三维 地图 渲染 显示 方法 系统 | ||
1.一种三维地图渲染显示方法,其特征在于,包括:
根据当前视点的地图位置信息,调用当前场景模型对应的模型文件;其中所述模型文件中的数据以八叉树结构的形式进行缓存;
通过所述八叉树结构结合当前视点的视椎体,采用预设的可见性判断算法对当前场景模型内部的所有节点进行细节层次LoD的可见性判断,以标注出所述模型文件中进入当前视点的视椎体视野范围内可见的节点与子节点;
根据标注的所述可见的节点与子节点,对进入当前视点的视椎体视野范围内的场景进行渲染并显示;
所述采用预设的可见性判断算法对当前场景模型内部的所有节点进行细节层次LoD的可见性判断,包括:
判断当前层次的节点中心距离与包围盒半径的比值是否达到第二预设阈值;其中所述节点中心距离为当前场景模型中当前层次节点的包围盒中心点到当前视点的距离,所述包围盒半径为所述当前场景模型中当前层次节点的包围盒半径;
当判断结果为是时,则标注出当前场景模型中的所述节点可见,并将在所述节点下一个层次的所有子节点作为当前层次节点,返回执行所述判断当前层次的节点中心距离与包围盒半径的比值是否达到第二预设阈值的步骤;否则,不标注出当前场景中的所述节点可见。
2.如权利要求1所述的方法,其特征在于,所述根据当前视点的地图位置信息,调用当前场景模型对应的模型文件之前,还包括:
通过QuadKey对获取的三维点云街景数据进行分幅处理,生成各个场景模型对应的模型文件。
3.如权利要求2所述的方法,其特征在于,所述根据当前视点的地图位置信息,调用当前场景模型对应的模型文件,包括:
读取当前视点的地图位置信息对应的经纬度;
查找读取的所述经纬度对应的瓦片坐标,并根据所述瓦片坐标获取所述当前视点的地图位置对应的瓦片;
通过所述瓦片获得当前场景模型对应的模型文件的路径,并通过所述模型文件的路径将模型文件调入当前场景模型的更新队列中。
4.如权利要求3所述的方法,其特征在于,所述对进入当前视点的视椎体视野范围内的场景进行渲染并显示之后,还包括:
接收输入的对所述视点的漫游操作信息;
根据所述漫游操作信息分析所述视点漫游的距离,并判断所述距离是否达到第一预设阈值;
当判断结果为是时,重新执行所述读取当前视点的地图位置信息对应的经纬度的步骤。
5.如权利要求4所述的方法,其特征在于,所述通过所述模型文件的路径将模型文件调入当前场景模型的更新队列中之后,还包括:
将不在所述当前视点的视椎体视野范围内的场景移出所述更新队列。
6.如权利要求1所述的方法,其特征在于,所述以八叉树结构的形式进行缓存的数据按照节点或子节点设置有节点编号,并按照所述节点编号进行缓存在磁盘中;
所述根据标注的所述可见的节点与子节点,对进入当前视点的视椎体视野范围内的场景进行渲染并显示,包括:
获取出标注的所述可见的节点与子节点对应的节点编号;
根据所述获取的节点编号从磁盘中找出所述可见的节点与子节点对应的缓存文件,并根据所述缓存文件对进入当前视点的视椎体视野范围内的场景进行渲染并显示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510232430.0/1.html,转载请声明来源钻瓜专利网。