提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Mac系统开发osgEarth注意事项
编译osgEarth
提示:对应的OSG库也需要编译OpenGL3版本的:
编译最新的osgEarth库(>=3.0版本)需要编译OpenGL3可编程渲染管线。
https://gist.github.com/gwaldron/a56b0e77e7fa8587b698717d21f9366d
本文以OSG3.6.5和OSGEarth3.4为例介绍一些注意事项
提示:以下是本篇文章正文内容,下面案例可供参考
一、如何接入全球影像服务?
OpenStreetMap影像地址
https://b.tile.openstreetmap.org/0/0/0.png
Google影像地址
https://mt.google.com/vt/lyrs=y&x=0&y=0&z=0
加载谷歌地图的时候不同lyrs表示的地图类型如下
- m 标准路线图
- r 某种改变的路线图(路线不明显)
- s 影像卫星图
- y 带标签的卫星图
- h 标签层 (路名、地名等)
- t 地形图
- p 带标签的地形图
二、使用插件注意事项
因为Mac系统下默认的图片解析库是ImageIO,但ImageIO库的使用有很多问题
1. ImageIO插件读TIF不能生成地形,读TIF要使用TIFF插件或GDAL插件
使用HTTPClient读TIF生成地形用TIFF插件:
auto registry = osgDB::Registry::instance();
registry->addFileExtensionAlias("tif", "tiff");
使用osgDB::readImage读tif生成地形使用gdal插件:
auto registry = osgDB::Registry::instance();
registry->addFileExtensionAlias("tif", "gdal");
2.ImageIO读jpeg有误,pixelFormat读成了GL_BGRA而不是RGBA:
使用osgDB::writeImageFile写jpeg时要切换jpeg插件
auto registry = osgDB::Registry::instance();
registry->addFileExtensionAlias("jpeg", "jpeg");
三、调整看见瓦片的更新速度
MapNode::Options options;
options.terrain()->minTileRangeFactor() = 9.0;
MapNode* mapNode = new MapNode( map , options);
四、天空盒
osgEarth::SimpleSky::SimpleSkyOptions simpleSkyOptions;
simpleSkyOptions.moonImageURI() = URI("data/moon_1024x512.jpg");
auto skyNode = SkyNode::create(simpleSkyOptions);
mapNode->addChild(