osgEarth入门24自定义高程模型
在线上,地代码太空视角下的球源球源地球,地表起伏十分明显,码地美不胜收。地代码但若在现实场景中,球源球源地球半径约公里,码地卫星定位源码而世界最高峰珠穆朗玛峰仅8.8公里,地代码比例仅为0.%左右。球源球源在宇宙视角下,码地地球起伏几乎无法察觉。地代码本文旨在通过自定义ElevationLayer在osgEarth中实现夸张地形起伏的球源球源视觉效果。
在实现过程中,码地我们借助ImageLayer实现地表纹理贴图,地代码直流桩源码同时利用ElevationLayer构建地球表面地形几何数据,球源球源以实现类似HeightMap功能。码地为了构建超大规模场景,osgEarth采用金字塔瓦片数据组织形式,每个瓦片作为基础绘制单元。通过重载ElevationLayer的adnluaQQ飞车源码核心虚函数,可以实现高程数据的放大,从而达到夸张地形效果。本文使用GDALElevationLayer类作为基础,并读取本地0.°分辨率全球DEM GeoTiff文件作为数据源,同时提供一个外部修改高程放大系数的成员函数。
代码包含三个文件:MyElevationLayer.h(自定义高程图层类头文件)、源码售卖交易MyElevationLayer.cpp(自定义高程图层类实现代码)和main.cpp(程序入口代码)。此代码可在gitee.com/wangfengdev/o...中下载。DEM数据来源为NASA MODIS IMAPP工具包,已转换为COG GeoTiff格式。
实现方式适合静态设置高程放大系数。一旦绘制完瓦片,likeshop源码下载即使更改高程放大系数,该系数不会影响已绘制瓦片的显示,只影响新绘制的瓦片。关于瓦片更新问题,尝试了多种方法,但未找到有效解决方案。
在使用过程中,应注意ElevationLayer的有效值范围,默认为-至+。放大后的高程超过此范围时,超出部分将被填充为0值。如果需要调整有效值范围,可通过设置最小值和最大值方法进行调整。代码示例见MyElevationLayer构造函数。
最后,附上几张实现效果的,以供参考。
至此,实现自定义高程模型在osgEarth中达到夸张地形起伏视觉效果的过程完成。
osgearth åªç§»å¨
æ¯å°çç»çº¬åº¦åè½ç¨åºã
osgearthåªç§»å¨æ¯åºäºosgearthå®ç°é¼ æ 移å¨æ¾ç¤ºå°çç»çº¬åº¦åè½ç¨åºã
osgEarthæ¯åºäºä¸ç»´å¼æosgå¼åçä¸ç»´æ°åå°çå¼æåºã
2024-12-23 23:39
2024-12-23 23:31
2024-12-23 23:18
2024-12-23 22:32
2024-12-23 22:24