osgEarth的Rex引擎原理分析(二十一)创建瓦片模型过程详解

本文深入解析osgEarth的Rex引擎中创建瓦片模型的过程,涉及图层管理、进度回调、瓦片模型组件等内容。通过检查图层的渲染类型、活动状态和过滤,将影像、高程等信息整合到瓦片模型中,同时探讨了osgEarth::TerrainEngineRequirements和图层滤波器的角色。文章详述了颜色层、细分层和高程层的添加步骤,并列举了一系列待分析的问题,涵盖引擎的多个核心方面。
摘要由CSDN通过智能技术生成

目标:(十七)中问题47

瓦片模型的作用是负责管理瓦片中的影像、高程等图层信息(这些信息的获取最终通过createTileModel函数来实现),负责维护瓦片版本等,应当是每一个瓦片都对应有一个瓦片模型,这个瓦片模型是在瓦片请求过程中创建的,具体看(十七)。

osgEarth/TerrainTileModelFactory.cpp
TerrainTileModel*
TerrainTileModelFactory::createTileModel(const MapFrame&                  frame,
                                         const TileKey&                   key,
                                         const CreateTileModelFilter&     filter,
                                         const TerrainEngineRequirements* requirements,
                                         ProgressCallback*                progress)
{
    // Make a new model:
    osg::ref_ptr<TerrainTileModel> model = new TerrainTileModel(
        key,
        frame.getRevision() );

    // assemble all the components:
    //addImageLayers(model.get(), frame, requirements, key, filter, progress);
    addColorLayers(model.get(), frame, requirements, key, filter, progress);

    addPatchLayers(model.get(), frame, key, filter, progress);

    if ( requirements == 0L || requirements->elevationTexturesRequired() )
    {
        unsigned border = requirements->elevationBorderRequired() ? 1u : 0u;

        addElevation( model.get(), frame, key, filter, border, progress );
    }

#if 0
    if ( requirements == 0L || requirements->normalTexturesRequired() )
    {
        addNormalMap( model.get(), frame, key, progress );
    }
#endif

    // don
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值