作者:拍友2602909025 | 来源:互联网 | 2023-07-02 13:40
前言 osgEarth是基于OpenSceneGraph(OSG)实现的3DGIS引擎,而OSG是一个开源的三维实时场景图形开发框架。学习osgEarth之前最好先学习下OSG,这是OSG官网有很多学习资料可以参考。osgEarth同时支持2D、3D地图,主要应用于军事仿真、教育、城市规划和管理、智能运维等领域。点击这里进入osgEarth官网。本文主要记录了在win10环境下编译osg和osgEarth的过程,我们通过运行框架自带的示例程序,结合源码能快速掌握osgEarth。
目录 前言 1、准备工作 2、编译 OSG 3、编译osgEarth 4、编译osgQt
1、准备工作 我们准备使用cmake来编译OSG和osgEarth,如果之前没有安装过cmake,可以 从这里Cmake官网下载Cmake进行安装。 osgEarth依赖OSG,而OSG又依赖一些三方库来实现一些功能,主要的三方库见下表
Curl ffmpeg freetype GDAL GIFLIB Jpeg LIBXML2 PNG TIFF ZLIB 对于上面列出的三方库,如果没有特殊的要求建议下载编译好的版本,毕竟我们的主要目的是学习osgEarth,如果把时间花在编译这些三方库上不太合适。 在这里可以下载编译好的三方库 三方库下载链接 有了三方库后接下来下载OSG源码和OSGEarth源码,OSG版本选择3.6.5,osgEarth选择2.10,点击下面的链接进行下载。
2、编译 OSG 在编译OSG之前,先把三方库的根目录添加到环境变量OSG_THIRD_PARTY,并把它加到PATH 变量中,这样cmake能自动找到OSG依赖的三方库。 打开cmake-gui,在where is the source code:输入框中填入 OSG源码的根目录,在where to build the bianaries:输入框中填入构建目录地址,cmake会将将生成的工程和编译之后的文件存放在这个目录下,这里在OSG源码根目录下新建了一个build,选择这个目录即可,如下图所示。 默认情况下不开启多核编译,这里可以通过修改编译选项支持多核编译,能大大提高编译速度。如图在debug和release编译选项后面添加 /MP。
配置好后,点击页面左下角的Configure按钮,在弹出页面中选择编译器VS 2015 ,平台选择x64,如下图 ,点Finish按钮等待完成。 配置完成后点击 【Generate】按钮生成OSG源码的VS2015 工程,点击【Open Project】按钮打开生成的解决方案。如下图所示
在解决方案上右键,弹出的菜单中选择【批生成】,弹出如下面页面,勾选其中的ALL_BUILD Debug和ALL_BUILD Release,这里只编译选择的这两个工程就行,然后点击生成按钮,开始编译。 漫长的编译过程结束后,接下来测试下编译是否成功。 首先下载OSG提供的测试数据,OSG测试数据下载地址,下载完成后将data的根目录添加到path环境变量中,我们通过使用osgviewer.exe打开一个模型,来验证编译是否成功。打开VS2015命令行,cd 到 osg源码的build/bin 目录下,输入命令:osgviewer.exe cow.osg , 能看到如下图所示的页面说明osg编译成功。
3、编译osgEarth 将编译好的OSG库文件所在的根目录build,添加到环境变量OSG_ROOT中,然后打开cmake,设置osgEarth的源码根目录和build目录,修改编译选项支持多核编译,r然后点击【Configure】按钮,接着点击【Generate】按钮生成工程,点击【Open Project】打开项目 在解决方案上右键,弹出的菜单中选择【批生成】,弹出如下面页面,勾选其中的ALL_BUILD Debug和ALL_BUILD Release,这里只编译选择的这两个工程就行,然后点击生成按钮,开始编译。 等待编译结束后,利用osgearth_viewer.exe 来测试下编译结果。osgEarth源码目录下有个test,这个目录中有很多测试文件,选择其中的gdal_interp.earth作为测试文件。打开VS2015 命令行工具,cd到osgEarth的build/bin目录下,执行命令:osgearth_viewer.exe C:\develop\osg\osgearth-2.10\tests\gdal_multiple_files.earth ,能看到下图所示的地球页面,说明编译成功了。我们用同样的方式来运行osgEarth的各个示例,了解osgEarth能做什么。
4、编译osgQt OSG的UI库还比较弱,我们一般使用Qt来开发跨平台的UI界面,osgQt 这个三方库实现了Qt与OSG的集成,使用osgQt结合Qt框架能很容易的搭建一个基于Qt的osg开发环境。首先下载osgQt源码,下载地址,编译osgQt也是使用cmake,与上面编译osgEarth的过程相似。goodLuck!!
以上就是本篇的所有内容了,如有疑问欢迎评论区留言!!!