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

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

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

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

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

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

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

上一篇:C# 类型转换


下一篇:Web APIs