osgEarth的Rex引擎原理分析(一一九)为什么rex的瓦片分级为21级,Google为23级

本文探讨了osgEarth的Rex引擎为何选择21级瓦片分级,而非Google的23级。主要原因是21级的分辨率能够满足一般需求,并且在浮点数精度范围内,避免了超过float类型存储限制的问题。此外,文章还列举了一系列待分析的rex引擎相关问题。
摘要由CSDN通过智能技术生成

目标:(一一八)中的问题206

 

原因可能有这么几条:

1、实际使用的要求,rex21级的分辨率可达0.15m(osgEarth的Rex引擎原理分析(一零九)19级瓦片分辨率估算),基本上能满足一般的要求。

2、有效数字精度的要求,对于瓦片编号而言,23级的最大瓦片编号为2^22,如果用float存放的话,这不超float能够存放的极限2^23-1(C++学习(一三九)float、double的有效数字),如果是24级瓦片编号2^23(8388608)则超出了float的极限,不能正确存下。

 

rex瓦片级数为20级,即0...19,osgEarth默认的级数为24级,即0...23

osgEarth/TerrainOptions.cpp
TerrainOptions::TerrainOptions( const ConfigOptions& options ) :
_maxLOD( 23 )
{
    fromConfig( _conf );
}
osgEarthDrivers/engine_rex/RexTerrainEngineNode.cpp
#define DEFAULT_MAX_LOD 19u

void
RexTerrainEngineNode::setMap(const Map* map, const TerrainOptions& options)
{
    unsigned maxLOD = _terrainOptions.maxLOD().getOrUse(DEFAULT_MAX_LOD);

    _selectionInfo.initialize(
        0u, // always zero, not the terrain options firstLOD
        std::min( _terrainOptions.maxLOD().get(), maxLOD ),
        _mapFrame.getMapInfo().getProfile(),        
        _terrainOptions.minTileRangeFactor().get() );
}
osgEarthDrivers/engine_rex/TileNode.cpp
//判断是否要继续分割瓦片
bool
TileNode::shouldSubDivide(TerrainCuller* culler, const SelectionInfo& selectionInfo)
{ 
        if (currLOD < selectionInfo.getNumLODs() && currLOD != selectionInfo.getNumLODs()-1)
        {
            return _surface->anyChildBoxIntersectsSphere(
                culler->getViewPointLocal(), 
                range,
                culler->getLODScale());
        }
}

 

 

 

 

 

 

 

待继续分析列表:

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类的意义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值