目标:(十二)中的问题14

morphing翻译为渐变(或混合)比较合适。

先看两张图,左图是使用了Image morphing,右图没有使用。morph的作用是使视域边界处的瓦片颜色和高程均匀变化。Image morphing控制颜色,Terrain morphing控制高程。这个功能是osgEarth的rex区别与mp的主要点之一。

1、实现原理

1.1获取两级纹理数据,在TileNode的merge中

1.2在着色器中对两级纹理进行混合渐变,在RexEngine.Morphing.vert.glsl(负责计算混合系数)和RexEngine.frag.glsl(负责颜色混合)文件中

2、如何控制

2.1程序控制

思路:阻止获取父纹理数据

答案:无法程序控制,因为无法操控isActive中的_unit

osgEarthDrivers/engine_rex/TileNode.cpp
void
TileNode::refreshInheritedData(TileNode* parent, const RenderBindings& bindings)
{
if (s == SamplerBinding::COLOR_PARENT && bindings[SamplerBinding::COLOR_PARENT].isActive()){
}
}

默认Image morphing、Terrain morphing均为true。

osgEarthDrivers/engine_rex/RexTerrainEngineOptions
RexTerrainEngineOptions( const ConfigOptions& options =ConfigOptions() ) : TerrainOptions( options ),_skirtRatio             ( 0.0f ),_color                  ( Color::White ),_expirationThreshold    ( 300 ),_progressive            ( false ),_highResolutionFirst    ( true ),_normalMaps             ( true ),_normalizeEdges         ( false ),_morphTerrain           ( true ),_morphImagery           ( true ),_mergesPerFrame         ( 20 ),_expirationRange        ( 0 ){setDriver( "rex" );fromConfig( _conf );// override.enableMercatorFastPath().init( false );}

2.2earth文件控制

<terrain driver="rex"><vertical_scale>1.0</vertical_scale><morph_imagery>false</morph_imagery></terrain>

待继续分析列表:

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、高程、影像文件格式详解((二十五)中问题)

81、TileNode的merge过程详解((二十六)中问题)

82、osgEarth支持的空间参考坐标系详解(osgEarth::SpatialReference、osgEarth::CubeSpatialReference、osgEarth::TangentPlaneSpatialReference)((二十九)中问题)

83、osgEarth地球椭球体ellipsoid 大地基准面datum 地图投影Projection详解((二十九)中问题)

84、空间参考坐标系和坐标系统类型的关系(geocentric projected)((二十九)中问题)

85、proj4是什么((二十九)中问题)

86、为什么要删除设置过的垂直水准面((二十九)中问题)

87、osgEarth如何对投影坐标系和大地坐标系进行显示处理的((二十九)中问题)

88、TileNode的节点构成,一个surface、tilenode((三十)中问题)

89、MapFram和MapInfo的关系((三十)中问题)

90、ModifyBoundingBoxCallback的使用时机和场合((三十)中问题)

91、MapFrame为什么要单独存放高程层_elevationLayers,而不是放在图层_layers中((三十)中问题)

92、MapFrame和Map中高程池的作用osg::ref_ptr<ElevationPool> _elevationPool((三十)中问题)

93、osgEarth::Drivers::RexTerrainEngine::TileDrawable分析((三十)中问题)

94、请求读取地理信息失败会如何处理((三十二)中问题)

95、RexTerrainEngineNode的遍历过程详解((三十三)中问题)

96、osgEarth::Drivers::RexTerrainEngine::TerrainCuller的apply过程详解((三十三)中问题)

97、RexTerrainEngineNode的updateState过程详解 设置了很多着色器变量((三十三)中问题)

98、什么时候分配opengl资源((三十三)中问题)

99、TileNode释放opengl资源过程releaseGLObjects详解((三十三)中问题)

100、最近一次遍历的帧号和时间是怎么设置呢(在渲染遍历里),怎么就不会再渲染遍历该瓦片节点了((三十三)中问题)

101、osg::State和osg::StateSet的关系((三十四)中问题)

102、osgEarth::SpatialReference和osgEarth::Profile的关系((三十六)中问题)

103、osgEarth的Geographic、Geodetic、Geocentric和Project的关系((三十六)中问题)

104、TileNode绘制过程详解((三十七)中问题)

105、如何控制父子TileNode节点的显隐((三十七)中问题)

106、GeometryPool的createGeometry过程详解((三十七)中问题)

107、TileNode如何从地图中提取与其分辨率相适应的图像数据((三十七)中问题)

108、如何定制椭球体并进行椭球体间坐标转换((四十五)中问题)

109、Horizon Cull是什么意思((四十五)中问题)

110、osgEarth::Drivers::RexTerrainEngine::DrawState的作用((四十五)中问题)

111、osgEarth的线程分析((四十五)中问题)

112、从osgEarth到osg到Opengl((四十五)中问题)

113、osg::Program与osgEarth::VirtualProgram的关系((四十五)中问题)

114、rex引擎shader文件中的#pragma vp_entryPoint vp_location等含义((四十五)中问题)

115、rex引擎的着色器如何区分顶点和片段((四十五)中问题)

116、osg::Program是如何对着色器及其变量进行管理的((四十五)中问题)

117、osg的窗口是如何与opengl集成的((四十五)中问题)

118、osg是如何实现opengl的初始化的((四十五)中问题)

119、CGCS2000余WGS84坐标系的比较((四十六)中问题)

120、着色器代码文件到着色器程序的过程((五十一)中问题)

121、osgEarth::VirtualProgram默认出现在哪些位置((五十一)中问题)

122、rex引擎默认的几个着色器功能分析((五十一)中问题)

123、osgEarth::TileRasterizer功能详解((五十二)中问题)

124、osgEarth::ImageLayer如何使用VirtualProgram((五十二)中问题)

125、osgEarth::ShaderFactory osgEarth::ShaderLoader关系((五十四)中问题)

126、osgEarth::URI和osgEarth::URIContext的作用((五十四)中问题)

127、RexTerrainEngineNode中_renderBindings的作用((五十四)中问题)

128、Rex引擎如何给shader文件中的uniform变量赋值((五十四)中问题)

129、osgEarth中多个着色器的源代码的编译链接过程((五十四)中问题)

130、osgEarth::ShaderFactory osgEarth::ShaderLoader关系((五十四)中问题)

131、TileNode与DrawTileCommand的关系((五十五)中问题)

132、如何提取出指定范围的高程网格((五十五)中问题)

133、从earth文件加载高层图层的过程((五十五)中问题)

134、TerrainTileModel与TileRenderModel的关系((五十五)中问题)

135、EngineContext的作用((五十五)中问题)

136、几个uniformmap的关系((五十五)中问题)

137、DrawTileCommand中的采样器((五十五)中问题)

138、TileNode中的_surface(SurfaceNode)作用是什么((五十五)中问题)

139、stateset中的adduniform、setTextureAttribute等最后是如何反应到opengl上的((五十五)中问题)

140、状态树和渲染树的关系((五十五)中问题)

141、TileRenderModel中的RenderingPass和RenderBindings((五十五)中问题)

142、高程瓦片的绘制过程((五十五)中问题)

143、如何从高程影像变成高程网格((七十一)中问题)

144、osg::StateSet中的_binMode作用((七十二)中问题)

145、rex的瓦片高程影像和高程文件中的影像尺寸如何对应((七十二)中问题)

146、osgEarth::TerrainLayerOptions高程层选项中参数的含义((七十二)中问题)

147、从高程文件读取的高程信息如何填充rex的高程瓦片((七十二)中问题)

148、地图下载器实现原理((七十二)中问题)

149、RexTerrainEngineNode和TerrainCuller中_terrain的关系((七十二)中问题)

150、TileNodeRegistry和LayerDrawable中_tiles的关系((七十二)中问题)

151、rex引擎中绘制瓦片的调度过程原理((七十二)中问题)

152、晕眩图的制作与实现((七十八)中问题)

153、如何将高层场保存为tif、MBTiles等((七十八)中问题)

154、如何将tif和MBTiles进行格式转换((七十八)中问题)

155、如何加载百度、高德、谷歌、微软的在线地图((七十八)中问题)

156、osgEarth运行起来为什么很占CPU资源((七十九)中问题)

157、wmts与xyz、quadtree、tms的关系((七十九)中问题)

158、获取的高程图像为什么除了设置纹理还要设置栅格((八十)中问题)

159、rex引擎创建图层的过程((八十一)中问题)

160、如何设置高度单位(m、km等)((八十二)中问题)

161、网络资源加载失败还会不会继续加载((八十二)中问题)

162、rex引擎打开图层的过程((八十二)中问题)

163、osgEarth::MemCache详解((八十二)中问题)

164、OGR与GDAL的关系((八十二)中问题)

165、osgEarth::Map的cache创建过程((八十三)中问题)

166、osgEarth跨平台的头文件包含设置((八十三)中问题)

167、rex引擎如何实现淹没分析((八十八)中问题)

168、rex引擎如何实现挖方分析((八十八)中问题)

169、rex引擎如何实现地形整平((八十八)中问题)

170、rex引擎如何绘制矢量图形((八十八)中问题)

170、rex引擎如何绘制等高线((八十八)中问题)

171、rex引擎如何显示瓦片的边界((八十八)中问题)

172、边界处瓦片颜色混合的实现((九十)中问题)

173、rex自带的着色器代码会硬编码进动态库吗((九十一)中问题)

174、rex在渲染时会不会纹理单元内容频繁更改((九十一)中问题)

175、如何显示瓦片编号((九十四)中问题)

176、缓存文件复用、弃用的判决((九十五)中问题)

177、RenderingPasses和RenderBindings((九十五)中问题)

osgEarth的Rex引擎原理分析(九十五)地形变形(Terrain morphing)相关推荐

  1. osgEarth的Rex引擎原理分析(一二六)rex瓦片组织方式

    目标:(一二五)中问题212 通过如下确定瓦片的组织方式 ,核心是profile osgEarth/Map.cpp void Map::calculateProfile() {// collect t ...

  2. osgEarth的Rex引擎原理分析(九十)如何设置高度单位(m、km等)

    目标:(八十二)中的问题160 默认的单位是m,如果要修改为其它单位,需要直接修改profile文件,或者设置缩放比例 <profile srs="+proj=merc +a=6378 ...

  3. osgEarth的Rex引擎原理分析(一二五)着色器源代码加工处理过程

    目标:(一二四)中问题211 1.添加默认着色器 这类着色器源代码是内置在程序里的,不会经过osgEarth着色器框架的整合. 1.1加载时处理 osg/StateSet.cppstatic cons ...

  4. osgEarth的Rex引擎原理分析(二十五)地形瓦片大小尺寸和LOD的关系

    目标:(十八)中的问题55 osgEarth::TerrainOption中_tileSize默认大小为17,LOD的默认范围为0-23,这两个值的关系是什么? 还有瓦片的像素尺寸_tilePixel ...

  5. osgEarth的Rex引擎原理分析(三十五)osgEarth地球椭球体ellipsoid 大地基准面datum 地图投影Projection详解

    目标:(二十九)中的问题83 地球椭球体的中心为地心,形状为椭球体 大地基准面是适应某一区域的椭球体,球体中心不一定在地心 地图投影是球面和平面映射关系的方法 Horizontal Datum A d ...

  6. osgEarth的Rex引擎原理分析(一二四)osgEarth着色器文件与场景树节点的对应关系

    目标:(一二三)中问题210 场景树 rex | terrain-------------------------------------------------------------------- ...

  7. osgEarth的Rex引擎原理分析(一零九)19级瓦片分辨率估算

    目标:(一零八)中的问题194 rex的瓦片分级为0.1.....19 第0级角度分辨率 180° 第1级角度分辨率 180°/2 ... 第19级角度分辨率 180°/2^19=0.00034332 ...

  8. osgEarth的Rex引擎原理分析(七十三)从高程文件读取的高程信息如何填充rex的高程瓦片

    目标:(七十二)中的问题147 高程文件的划分规则和rex瓦片是不一样的,高程文件的0级就是文件本身,不管文件实际范围多大,然后采用二分法逐级增加.rex瓦片的0级对应整个地球表面. 两个范围一般不是 ...

  9. osgEarth的Rex引擎原理分析(七十九)如何加载百度、高德、谷歌、微软的在线地图

    目标:(七十八)中的问题155 瓦片生成后,就是一堆图片.怎么对这堆图片进行编号,是目前主流互联网地图商分歧最大的地方.总结起来分为四个流派: 谷歌XYZ:Z表示缩放层级,Z=zoom:XY的原点在左 ...

最新文章

  1. 正排索引(forward index)与倒排索引(inverted index)
  2. USTC服务器使用笔记
  3. 启明云端分享| 继ESP32-S3点屏480*480分辨率的2.1寸屏后,目前在8ms平台又发布了480*480分辨率的4寸屏、480*272分辨率的4.3寸屏、800*480分辨率的4.3寸屏SDK
  4. android软件开发考试,Android软件工程师笔试题(全选择题)【0-1年经验】
  5. gRPC-rs:从 C 到 Rust 1
  6. java中多个输入框搜索_如何在一个搜索框中输入多个字段的值进行查询?
  7. 2011系统架构师大会分享-自动化运维中的关系管理
  8. python生成正态分布数据_python 生成正态分布数据,并绘图和解析
  9. 送6个Gmail邀请!
  10. Android动态加载字节码
  11. 题目:求100以内的全部素数,每行输出10个。1不是素数
  12. 最全微信小程序源码项目开发代码合集
  13. Paraview快捷键操作
  14. python标准库不需要导入即可使用其中的所有对象和方法_Python扩展库需导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法...
  15. ai背景合成_AI突破次元壁又火了!飞屋环游记动漫角色一秒变真人,网友:小罗的“猫王发型”有点酷...
  16. 【数据库认证】OCM准备及考试经验总结
  17. Java设计模式实战 ~ 观察者模式分析与实战
  18. Java正则匹配淘口令
  19. 如何把一张照片的像素提高_如何提升照片的像素?
  20. Vue warn]: Computed property XXXl was assigned to but it has no setter.错误

热门文章

  1. 毕业设计之 ---- 基于Java web 的公司财务管理系统
  2. 直流电机-(有刷直流电机-无刷直流电机)-伺服电机-步进电机
  3. 2022危险化学品经营单位安全管理人员特种作业证考试题库及模拟考试
  4. 【神策 2021 数据驱动大会丨演讲实录】菲利普·科特勒:营销的未来
  5. hls 网络上的m3u8视频源地址(可用的)
  6. 根据屏幕判断iPhoneX
  7. 异类:探究成功的启示
  8. 东南计算机专业课,2018年东南大学计算机935考研真题(大题)回忆全
  9. 转载-matlab的基本统计量
  10. 安装新版本Cmake