WorldWind源码剖析系列:漫游时四叉树瓦片类QuadTile的运行思路

Posted rainbow70626

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WorldWind源码剖析系列:漫游时四叉树瓦片类QuadTile的运行思路相关的知识,希望对你有一定的参考价值。

用户在窗口漫游时,需要加载精细的高程和纹理数据时的处理思路:当用户漫游时直到窗口相机的视场角的1/2小于(瓦片大笑*瓦片绘制距离的乘积)时,才初始化四叉树瓦片类QuadTile,或者加载本地缓存中的数据,或者通过http请求下载远程的网络数据。接下来的处理流程为:

技术图片

网络下载相关类之间的引用关系:

技术图片

记住:在QuadTile::Initialize()和TerrainTile:: Initialize()这两个初始化方法中做了很多事情,如:判断影像瓦片数据或高程瓦片数据在本地缓存中是否存在,如果否,则发起http网络下载请求,缓存到本地目录之后再解析。如果是,则直接解析本地缓存中的瓦片数据。下载纹理影像瓦片数据时,会标记下载不成功的坏文件,还会将图片格式转换为D3D的dds格式压缩纹理,以节省GPU的纹理内存。下载高程瓦片数据时,根据情况对下载回来的数据进行解压缩处理。下载纹理影像瓦片数据时用到了生产者-消费者、任务队列等多线程编程模型。

以上是关于WorldWind源码剖析系列:漫游时四叉树瓦片类QuadTile的运行思路的主要内容,如果未能解决你的问题,请参考以下文章

WorldWind源码剖析系列:BMNG类构造函数深入分析

WorldWind源码剖析系列:WorldWind如何确定与视点相关的地形数据的LOD层级与范围

多时相地图瓦片简单设想

SpatialHadoop中空间索引系列之四叉树索引原理

SpatialHadoop中空间索引系列之四叉树索引原理

图像分割基于四叉树图像分割matlab源码