WorldWind源码剖析系列:WorldWind中的LOD技术
1. 基本概念:
World Wind Tile Structure:是指WW瓦片数据结构。
默认浏览器纹理数据存放在\Cache\Earth\Images\NASA Landsat Imagery\NLT Landsat7 (Visible Color),和高程数据一样分层存储,从服务器下载的图像为JPG格式,512*512像素,下载完毕后转换为DDS格式,DTX3压缩,所占空间会增大一倍多,但据说运行时可节约50%内存。下载的临时文件后缀为jpg.tmp,下载出错后会多一个0字节的jpg.txt文件。
国界数据存放在Cache\Earth\Boundaries\Country Political Boundaries,为PNG的图片格式,更详细的地界现在只有US的:Cache\Earth\Boundaries\US State Political Boundaries,均为512*512像素的PNG图片转为DDS格式
DEM数据存放在Cache\Earth\SRTM后缀为.bil。
2. 涉及的类包括:
纹理:QuadTileset,QuadTile,ImageStore,GeoSpatialDownloadRequest(WorldWind.Renderable)
DEM高程:TerrainAccessor,NltTerrainAccessor,TerrainTile,GeoSpatialDownloadRequest(WorldWind.Net)
QuadTile是四叉树瓦片数据结构,定义好了四叉树后,在四叉树瓦片上贴上纹理,同时可以给四叉树添加高程。

图1纹理

图2 DEM高程获取
WorldWind源码剖析系列:WorldWind中的LOD技术的更多相关文章
- WorldWind源码剖析系列:星球类World
星球类World代表通用的星球类,因为可能需要绘制除地球之外的其它星球,如月球.火星等.该类的类图如下. 需要说明的是,在WorldWind中星球球体的渲染和经纬网格的渲染时分别绘制的.经纬网格的渲染 ...
- WorldWind源码剖析系列:星球球体的加载与渲染
WorldWind源码剖析系列:星球球体的加载与渲染 WorldWind中主函数Main()的分析 在文件WorldWind.cs中主函数Main()阐明了WorldWind的初始化运行机制(如图1所 ...
- WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore
影像存储类ImageStore 影像存储类ImageStore提供了计算本地影像路径和远程影像影像URL访问的各种接口,是WmsImageStore类和NltImageStore类的基类.当划分完层次 ...
- WorldWind源码剖析系列:设置类SettingsBase
PluginSDK中的星球设置类WorldSettings 和WorldWind.程序设置类WorldWindSettings均继承自父类SettingsBase.类图如下所示.其中父类Setting ...
- WorldWind源码剖析系列:表面影像类SurfaceImage
表面影像类SurfaceImage描述星球类(如地球)表面纹理影像.该类的类图如下. 表面影像类SurfaceImage包含的主要的字段.属性和方法如下: string m_ImageFilePath ...
- WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer
星球表面渲染类WorldSurfaceRenderer描述如何渲染星球类(如地球)表面影像纹理.该类的类图如下. 星球类World包含的主要的字段.属性和方法如下: public const int ...
- WorldWind源码剖析系列:WorldWind实时确定、更新、初始化和渲染地形和纹理数据
WorldWind实时确定.更新.初始化和渲染地形和纹理数据 当用户点击WorldWind中的地球时,首先响应的是WorldWindow.OnPaint()函数,后续程序的调用流程如下图所示. 零散知 ...
- WorldWind源码剖析系列:挂件类Widgets
WorldWindow用户定制控件类中所包含的的挂件类Widgets控件主要有如下图所示的派生类.它们的类图如下所示. 鉴于挂件类Widgets及其派生类,相对简单,基本上都是些利用DirectX3D ...
- WorldWind源码剖析系列:表面瓦片类SurfaceTile
表面瓦片类SurfaceTile描述星球类(如地球)表面纹理影像的瓦片模型.其类图如下. 表面瓦片类SurfaceTile包含的主要的字段.属性和方法如下: int m_Level;//该瓦片所属金字 ...
- WorldWind源码剖析系列:四叉树瓦片集合类QuadTileSet
四叉树瓦片集合类QuadTileSet是影像瓦片渲染的主要类.使用地形管理器来为3D地形渲染查询高程值.依赖于用来刷新基于经度.纬度.视角范围瓦片的更新线程.该类继承自可渲染对象类Renderable ...
随机推荐
- KubeSphere 社区双周报 | OpenFunction v1.0.0 发布 | 2023.03.03-03.16
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- Vue 中 v-html 无法被 style scoped 渲染的问题
假设有这么一个 vue 组件: <template> <div v-html="docPreview"/> </template> <st ...
- react hooks + ts 封装组件
react hooks+ts组件封装 简介 在react使用ts封装组件,需要注意类型, 使用 forwardRef 方法包起来 子组件 import * as React from "re ...
- 每日学学Java开发规范,编程规约(附阿里巴巴Java开发手册(终极版))
前言 每次去不同的公司,码不同的代码,适应不同的规范,经常被老大教育规范问题,我都有点走火入魔的感觉,还是要去看看阿里巴巴Java开发规范,从中熟悉一下,纠正自己,码出高效,码出质量. 想细看的可以去 ...
- 剖析Air724UG的硬件设计,还有大发现?01部分
一.绪论 Air724UG是一款基于紫光展锐UIS8910DM平台设计的LTE Cat 1无线通信模组.支持FDD-LTE/TDD-LTE的4G远距离通讯和Bluetooth近距离无线传输技术,支 ...
- 开源 - Ideal库 - 枚举扩展设计思路及实现难点(三)
今天想和大家分享关于枚举扩展设计思路和在实现过程中遇到的难点. 01.设计思路 设计思路说起来其实也很简单,就是通过枚举相关信息:枚举值.枚举名.枚举描述.枚举项.枚举类型,进行各种转换,通过一个信息 ...
- Tornado框架之深入(二)
知识点 Application设置 debug模式 路由设置扩展 RequestHandler的使用 输入方法 输出方法 可重写接口 目录: Application settings 路由映射 输入 ...
- Java设计模式——职责链模式:解锁高效灵活的请求处理之道
嘿,各位 Java 编程大神和爱好者们!今天咱们要一同深入探索一种超厉害的设计模式--职责链模式.它就像一条神奇的"处理链",能让请求在多个对象之间有条不紊地传递,直到找到最合适的 ...
- c# is 和 as 浅看重制版
前言 当年写的比较差:https://www.cnblogs.com/aoximin/p/12965408.html,所以特来重新写一遍. 正文 首先为什么会出现is 和 as 呢? 因为是为了有需要 ...
- ZCMU-1111
与背包和动态规划有关(我认为) 采用dp数组存放吃掉i千克食物要用掉的钱 dp最开始要尽量的大方便过程中判断和最后的输出判断 实时更新dp,保留最小的钱 以前不知道的 printf函数可以这样用 fi ...