osgEarth的Rex引擎原理分析(二十五)地形瓦片大小尺寸和LOD的关系
目标:(十八)中的问题55
osgEarth::TerrainOption中_tileSize默认大小为17,LOD的默认范围为0-23,这两个值的关系是什么?
还有瓦片的像素尺寸_tilePixelSize默认为256,它和_tileSize有什么关系?
和(二十一)中创建瓦片模型时默认高程网格点数257什么关系
_tileSize和_tilePixelSize是这样说明的:
osgEarth/TerrainOptions/*** Size of each dimension of each terrain tile, in verts. Ideally this * will be a power of 2 plus 1, i.e.: a number X with that X = (2^Y)+1* where Y is an integer >= 1.** Default = 17. */optional<int>& tileSize() { return _tileSize; }const optional<int>& tileSize() const { return _tileSize; }/** The size of the tile, in pixels, when using rangeMode = PIXEL_SIZE_ON_SCREEN */optional<float>& tilePixelSize() { return _tilePixelSize; }const optional<float>& tilePixelSize() const { return _tilePixelSize; }/*** The minimum tile LOD range as a factor of the tile's radius.* Default = 7.0.*/optional<float>& minTileRangeFactor() { return _minTileRangeFactor; }const optional<float>& minTileRangeFactor() const { return _minTileRangeFactor; }/*** The maximum level of detail to which the terrain should subdivide. If you leave this* unset, the terrain will subdivide until the map layers stop providing data (default* behavior). If you set a value, the terrain will stop subdividing at the specified LOD* even if higher-resolution data is available. (It still might stop subdividing before it* reaches this level if data runs out.)*/optional<unsigned>& maxLOD() { return _maxLOD; }const optional<unsigned >& maxLOD() const { return _maxLOD; }/*** The minimum level of detail to which the terrain should subdivide (no matter what).* If you leave this unset, the terrain will subdivide until the map layers* stop providing data (default behavior). If you set a value, the terrain will subdivide* to the specified LOD no matter what (and may continue farther if higher-resolution* data is available).*/optional<unsigned>& minLOD() { return _minLOD; }const optional<unsigned>& minLOD() const { return _minLOD; }
TerrainOptions::TerrainOptions( const ConfigOptions& options ) :
DriverConfigOptions( options ),
_tileSize( 17 ),
_verticalScale( 1.0f ),
_verticalOffset( 0.0f ),
_minTileRangeFactor( 7.0 ),
_combineLayers( true ),
_maxLOD( 23 ),
_minLOD( 0 ),
_firstLOD( 0 ),
_enableLighting( false ),
_attenuationDistance( 0.0f ),
_lodTransitionTimeSeconds( 0.5f ),
_enableMipmapping( true ),
_clusterCulling( true ),
_enableBlending( true ),
_mercatorFastPath( true ),
_minFilter( osg::Texture::LINEAR_MIPMAP_LINEAR ),
_magFilter( osg::Texture::LINEAR),
_minNormalMapLOD( 0u ),
_gpuTessellation( false ),
_debug( false ),
_binNumber( 0 ),
_castShadows(false),
_rangeMode(osg::LOD::DISTANCE_FROM_EYE_POINT),
_tilePixelSize(256)
{fromConfig( _conf );
}
由此可以看出_tileSize应该是每个瓦片的几何网格点数,_tilePixelSize应该是在距离模式为屏幕像素尺寸时有作用,也就是当瓦片在屏幕上的像素尺寸大于_tilePixelSize显示,否则不显示。
距离模式有两种,如下:
osg/LOD/** Modes that control how the range values should be interpreted when computing which child is active.*/enum RangeMode{DISTANCE_FROM_EYE_POINT,PIXEL_SIZE_ON_SCREEN};
到眼距离和屏幕像素尺寸两种,屏幕像素尺寸模式上面讲过。到眼距离模式指的是当瓦片距离眼睛超过瓦片大小和瓦片距离因子的乘积时不显示,否则显示,这个瓦片距离因子默认为7(也在osgEarth/TerrainOption中定义_minTileRangeFactor)。
osgEarth/TerrainOption选项在什么时候构建 在RexTerrainEngineNode节点创建时就会构建,因为_terrainOptions时RexTerrainEngineOptions实例型成员变量。
和earth文件的对应关系(见(十))
待继续分析列表:
9、earth文件中都有哪些options((九)中问题)
10、如何根据earth文件options创建不同的地理信息引擎节点((九)中问题)
11、rex地理信息引擎的四梁八柱((九)中问题)
12、osgEarth::TerrainEngineNode中setMap方法作用((十二)中问题)
13、RexTerrainEngineNode中_mapFrame的作用((十二)中问题)
14、地形变形(Terrain morphing)((十二)中问题)
15、地球瓦片过期门限的含义((十二)中问题)
16、高分辨率优先的含义((十二)中问题)
17、OSGEARTH_DEBUG_NORMALS环境变量的作用((十二)中问题)
18、活跃瓦片寄存器的作用((十二)中问题)
19、资源释放器子节点的作用((十二)中问题)
20、共享几何图形池子节点的作用((十二)中问题)
21、分页瓦片加载器子节点的作用((十二)中问题)
22、分页瓦片卸载器子节点的作用((十二)中问题)
23、栅格化器子节点的作用((十二)中问题)
24、地形子节点的作用((十二)中问题)
25、绑定渲染器的作用((十二)中问题)
26、地图回调函数的作用((十二)中问题)
27、如何将地图图层添加到rex引擎中((十二)中问题)
28、选择信息的作用((十二)中问题)
29、瓦片包围盒修改回调函数的作用((十二)中问题)
30、刷新rex引擎((十二)中问题)
31、刷新边界作用((十二)中问题)
32、osgEarth::Metrics类的意义((十四)中问题)
33、请求合并队列_mergeQueue((十四)中问题)
34、分页瓦片加载器在更新遍历时对请求处理过程((十四)中问题)
35、分页瓦片加载器在更新遍历时对已处理请求裁剪过程((十四)中问题)
36、已处理的请求队列_requests((十四)中问题)
37、DatabasePager中的_fileRequestQueue和_httpRequestQueue((十六)中问题)
38、瓦片请求的生成到处理过程详解((十六)中问题)
39、瓦片节点TileNode的创建过程((十七)中问题)
40、request请求加载瓦片优先级的含义((十七)中问题)
41、request的_internalHandle的作用((十七)中问题)
42、DatabaseRequest中_objectCache含义((十七)中问题)
42、osgEarth的多线程分析((十七)中问题)
43、osgEarth的缓存及其结构((十七)中问题)
44、DatabaseThread从缓存加载数据过程((十七)中问题)
45、DatabaseThread从文件加载数据过程((十七)中问题)
46、决定创建TileNode的时机条件((十七)中问题)
47、TerrainEngineNode的createTileModel过程详解((十七)中问题)
48、DatabaseThread中CompileSet的含义((十七)中问题)
48、PagerLoader的traverse过程详解((十七)中问题)
49、DatabaseThread的run过程详解((十七)中问题)
50、LoadTileData的invoke过程详解((十七)中问题)
51、TileNode的cull过程详解((十七)中问题)
52、遮罩生成器osgEarth::Drivers::RexTerrainEngine::MaskGenerator((十八)中问题)
53、RexTerrainEngineNode::traverse过程详解((十八)中问题)
54、TileNode节点下的场景树分析((十八)中问题)
55、地形瓦片大小尺寸和LOD的关系((十八)中问题)
56、TileNode的_tileKeyValue作用((十八)中问题)
57、TileNode的_morphConstants作用((十八)中问题)
58、TileNode的_stitchNormalMap作用((十八)中问题)
59、TileNode的_renderModel作用((十八)中问题)
60、初始化高程栅格过程详解((十八)中问题)
61、LoadTileData中的CreateTileModelFilter作用((十八)中问题)
62、TileNode节点何时会从场景树中移除((十八)中问题)
63、osgEarth::Map的Profile创建过程((二十)中问题)
64、osgEarth::TerrainTileModelFactory添加颜色层和影像层的区别((二十一)中问题)
65、osgEarth::PatchLayer修补层的作用((二十一)中问题)
66、osgEarth::TerrainLayer中的_memCache(osgEarth::MemCache)详解((二十一)中问题)
67、osgEarth::Layer::RenderType图层渲染类型的作用((二十一)中问题)
68、osgEarth::TerrainLayer中TileSource的作用((二十一)中问题)
69、earth文件没有设置高程图层会不会有默认高程层(高程均为0)((二十一)中问题)
70、TerrainTileModelFactory::addColorLayers过程详解((二十一)中问题)
71、TerrainTileModelFactory::addElevation过程详解((二十一)中问题)
72、osgearth中可能用到的几个全局实例对象(osgDB::Registry osgEarth::Registry osg::Timer osg::DisplaySetting)((二十三)中问题)
73、osgEarth::Map::addLayer过程详解((二十三)中问题)
74、TileNode::setDirty过程详解((二十三)中问题)
75、请求四个状态的含义(IDLE RUNNING MERGING FINISHED)((二十三)中问题)
76、什么时候删除TileNode节点,不会一直增加吧((二十三)中问题)
77、寄存器中请求状态活动记录的含义Registry::instance()->endActivity( req->getName() )((二十三)中问题)
78、瓦片TileNode的生命周期流程详解((二十三)中问题)
79、rex引擎如何将瓦片构造成地球形状((二十五)中问题)
80、高程、影像文件格式详解((二十五)中问题)
osgEarth的Rex引擎原理分析(二十五)地形瓦片大小尺寸和LOD的关系相关推荐
- osgEarth的Rex引擎原理分析(一二五)着色器源代码加工处理过程
目标:(一二四)中问题211 1.添加默认着色器 这类着色器源代码是内置在程序里的,不会经过osgEarth着色器框架的整合. 1.1加载时处理 osg/StateSet.cppstatic cons ...
- osgEarth的Rex引擎原理分析(九十五)地形变形(Terrain morphing)
目标:(十二)中的问题14 morphing翻译为渐变(或混合)比较合适. 先看两张图,左图是使用了Image morphing,右图没有使用.morph的作用是使视域边界处的瓦片颜色和高程均匀变化. ...
- osgEarth的Rex引擎原理分析(七十九)如何加载百度、高德、谷歌、微软的在线地图
目标:(七十八)中的问题155 瓦片生成后,就是一堆图片.怎么对这堆图片进行编号,是目前主流互联网地图商分歧最大的地方.总结起来分为四个流派: 谷歌XYZ:Z表示缩放层级,Z=zoom:XY的原点在左 ...
- osgEarth的Rex引擎原理分析(三十五)osgEarth地球椭球体ellipsoid 大地基准面datum 地图投影Projection详解
目标:(二十九)中的问题83 地球椭球体的中心为地心,形状为椭球体 大地基准面是适应某一区域的椭球体,球体中心不一定在地心 地图投影是球面和平面映射关系的方法 Horizontal Datum A d ...
- osgEarth的Rex引擎原理分析(七十三)从高程文件读取的高程信息如何填充rex的高程瓦片
目标:(七十二)中的问题147 高程文件的划分规则和rex瓦片是不一样的,高程文件的0级就是文件本身,不管文件实际范围多大,然后采用二分法逐级增加.rex瓦片的0级对应整个地球表面. 两个范围一般不是 ...
- osgEarth的Rex引擎原理分析(九十)如何设置高度单位(m、km等)
目标:(八十二)中的问题160 默认的单位是m,如果要修改为其它单位,需要直接修改profile文件,或者设置缩放比例 <profile srs="+proj=merc +a=6378 ...
- osgEarth的Rex引擎原理分析(一二四)osgEarth着色器文件与场景树节点的对应关系
目标:(一二三)中问题210 场景树 rex | terrain-------------------------------------------------------------------- ...
- osgEarth的Rex引擎原理分析(一零九)19级瓦片分辨率估算
目标:(一零八)中的问题194 rex的瓦片分级为0.1.....19 第0级角度分辨率 180° 第1级角度分辨率 180°/2 ... 第19级角度分辨率 180°/2^19=0.00034332 ...
- osgEarth的Rex引擎原理分析(一二六)rex瓦片组织方式
目标:(一二五)中问题212 通过如下确定瓦片的组织方式 ,核心是profile osgEarth/Map.cpp void Map::calculateProfile() {// collect t ...
最新文章
- Mac OS X 下Node.js开发环境的搭建
- R语言构建xgboost模型:使用xgboost构建泊松回归(poisson regression)模型
- JZOJ 1422. 猴子摘桃
- 中柏ezpadE7装linux,中柏EZbook 2笔记本U盘安装win7系统的操作教程
- pandas dataframe根据筛选结果修改值
- python安装与开发环境搭建_Python安装和开发环境搭建
- NodeJS自定义包和模块的导入(require)、导出(exports)
- LeetCode - 48. Rotate Image
- 冒着被开除的风险也要给大家看看看这份Spring Cloud 总结
- (day 13 - 双指针or递归)剑指 Offer 24. 反转链表
- 地形瓦片地图TiledMap AutoTiles自动图块
- java文本域添加滚动条实例_java文本域滚动条
- Centbrowser网页显示不正常的解决方法
- Docker生态系统:常规组件简介
- win32 mysql误删数据恢复_mysql误删数据恢复
- 【深度学习】02-06-谈谈机器学习的原理(选修)-李宏毅老师2122深度学习课程笔记
- windows 查看 局域网内在线 主机 IP
- 大数据24小时:孙彬出任乐视云新CEO,趣店数百万学生信息数据疑似泄露
- topcoder 第一次比赛
- C#源码QQ空间自动点赞神器,无需密码直接点头像登录,可加自动功能评论转发等。