1、OSG相关资源的下载
OSG相关资源有osg源码、依赖的第三方库和相关数据资源。在编译的时候需要osg源码和第三方库,数据资源中包括一些3D模型资源等。
2、Linux[Ubuntu]平台下的源码编译
在Ubuntu中编译osg需要下载OpenSceneGraph源码到磁盘中,依赖则通过命令下载安装,此外数据资源也先下载到磁盘中等待操作。操作过程如下:
第一步:下载依赖库
sudo apt build-dep openscenegraph
通过上述命令可能会出现源不存在的问题,因此需要手动添加源。这个源的写法根据不同的系统版本等有不同的写法,如果还有问题就是写法不对。
sudo vim /etc/apt/sources.list
sudo apt update # 更新
第二步:创建一个build,使用cmake构建项目,然后使用make生成对应的库
cd build
cmake ../OpenSceneGraph-OpenScenGraph-3.6.5/
make
在最后生成(make)osgPlugins部分的时候,这里有很多部分,其中的ffmpeg和RestHttpDevice两个东西出错,是版本的问题,为了快速完成且基本上用不到,就将其从编译中剔除。如下图是将ffmpeg剔除。[从cmakelists文将中将其取消]
再次cmake …和make即可。
最后一步:安装osg动态库
sudo make install # 【当前工作目录在build中】
会在usr/local目录中安装osg对应的库文件数据,其中bin是相关的可执行程序;include则是对应的头文件,给开发者使用;lib目录则是对应的动态库文件。
程序测试:
之前的数据资源,可以将其作为环境变量进行设置,很方便使用。也可以不设置,只是要很长的路径。如下程序中的cow.osg,可以不用使用绝对或者相对路径。因为osg的库安装到了系统默认会搜索的路径,所以不需要执行头文件目录和库目录,只需要说明需要链接哪些库即可。
3、Windows10系统编译osg3.6.5
这里使用VS2022+cmake3.28
第一步:将最开始的三个资料下载到本地。
第二步:打开cmake的ui界面,如下图进行设置,然后点击configure。
然后会出现界面,做以下操作
第三步:生成之后可以到build目录中打开OpenSceneGraph.sln,使用VS2022
然后点击VS2022顶部“生成”菜单项中的批生成
生成过程很长,可能需要几个小时,如果只需要debug或者release的一部分也可以不全部生成。
生成过程中可能会报错,我遇到的是关于MFC相关的,需要在Examples osgviewerMFC项目中的stdafx.h文件中添加如下代码
#define _WIN32_WINNT 0x0A00
#define _ATL_APARTMENT_THREADED
#define _USING_V110_SDK71_
#define _ATL_XP_TARGETING
并在所在工程(一共两个,分别是 Examples osgsimplegl3 和 Examples osgviewerMFC )的属性配置(Debug和Realse都需要)里,添加
_WIN32_WINNT=0x0A00
NTDDI_VERSION= 0x06030000
WINVER=0x0A00
最后生成即可成功。
**第四步:**生成了之后,再次回到批生成中,选择INSTALL,如下图,安装之后会在之前cmake中设置的安装目录中输出相关数据。
其中的include、bin和lib可以考虑设置为环境变量,方便编程时进行引用。