osgEarth+VS2015开发环境搭建

前言

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,点击下面的链接进行下载。

  • OSG源码下载地址
  • osgEarth源码下载地址

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,选择这个目录即可,如下图所示。
osgEarth+VS2015开发环境搭建_第1张图片
默认情况下不开启多核编译,这里可以通过修改编译选项支持多核编译,能大大提高编译速度。如图在debug和release编译选项后面添加 /MP。
osgEarth+VS2015开发环境搭建_第2张图片

配置好后,点击页面左下角的Configure按钮,在弹出页面中选择编译器VS 2015 ,平台选择x64,如下图 ,点Finish按钮等待完成。
osgEarth+VS2015开发环境搭建_第3张图片
配置完成后点击 【Generate】按钮生成OSG源码的VS2015 工程,点击【Open Project】按钮打开生成的解决方案。如下图所示

osgEarth+VS2015开发环境搭建_第4张图片
在解决方案上右键,弹出的菜单中选择【批生成】,弹出如下面页面,勾选其中的ALL_BUILD Debug和ALL_BUILD Release,这里只编译选择的这两个工程就行,然后点击生成按钮,开始编译。
osgEarth+VS2015开发环境搭建_第5张图片
漫长的编译过程结束后,接下来测试下编译是否成功。
首先下载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】打开项目
osgEarth+VS2015开发环境搭建_第6张图片
osgEarth+VS2015开发环境搭建_第7张图片
在解决方案上右键,弹出的菜单中选择【批生成】,弹出如下面页面,勾选其中的ALL_BUILD Debug和ALL_BUILD Release,这里只编译选择的这两个工程就行,然后点击生成按钮,开始编译。
osgEarth+VS2015开发环境搭建_第8张图片
等待编译结束后,利用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。osgQt有两个版本,一个是osgQt,支持Qt4, 另一个是osgQOpenGL,这两个版本都能在上面的下载地址中找到,根据需要选择一个版本即可。这里选择的是osgQOpenGL版本,接下来进行编译配置。
osgEarth+VS2015开发环境搭建_第9张图片

osgEarth+VS2015开发环境搭建_第10张图片

我的经验是当使用cmake 3.24生成工程时,所有配置都正常后,还是会配置错误,提示optimized 、debug不能包含在INTERNAL_LINK中,无奈重新下载了一个低版本的Cmake 3.15,配置成功。配置时注意两个地方,DESIRED_QT_VERSION ,QT5_DIR,这两个变量一定要设置正确。其中DESIRED_QT_VERSION 是通过 Add Entry按钮自己添加的。

osgEarth+VS2015开发环境搭建_第11张图片
QT5_DIR

然后点击【Generate】按钮生成项目工程,点击【Open Project】按钮查看生成的工程,并进行编译 。
osgEarth+VS2015开发环境搭建_第12张图片
编译完成后运行 osgviewerQt.exe,看到下面的牛就表示osgQt编译成功了。
osgEarth+VS2015开发环境搭建_第13张图片

以上就是本篇的所有内容了,如有疑问欢迎评论区留言!!!

你可能感兴趣的:(OSGEarth,C++,c++)