OpenSceneGraph(OSG)+VS2010的环境搭建

简介

OpenSceneGraph(简称OSG)是一个开放源码,跨平台的图形开发包,它为诸如飞行器仿真,游戏,虚拟现实,科学计算可视化这样的高性能图形应用程序开发而设计。它基于场景图的概念,它提供一个在OpenGL之上的面向对象的框架,从而能把开发者从实现和优化底层图形的调用中解脱出来,并且它为图形应用程序的快速开发提供很多附加的实用工具。

我接触OSG是在2013年左右,当时是想在三维虚拟环境中显示连杆机器人的运动姿态,并增加一些机器人与虚拟环境的交互功能,找了一下开发工具,主要有Unity和OSG。Unity好像是收费的,对计算机的要求又很高,毕竟主要用于游戏开发的嘛。而OSG是开源的,完全是由标准C++程序和OpenGL写的,网上公开的资料也比较丰富,所以就选择了使用OSG,使用过程还是挺舒心的。主要用到了节点的装配,碰撞检测,还有一些动画显示,至于渲染之类的高级应用没有用过。

下面是OSG在VS2010环境下的搭建过程,主要参考了缑城浪子的博客,具体实施步骤如下:

首先,是一些准备工作。

  1. 第一步当然是准备源码了,我当时使用的是OpenSceneGraph 3.0版本,是在官方网站上下载的,现在已经出到3.4.1版本了,可以到GitHub找到源码。以下是以上两个链接:
    http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip
    https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.4.1
  2. 再有就是第三方依赖包,包括OSG各个插件的依赖包,比如libpng,libjpeg……,这个的下载链接是http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip,这个我记得官网上也是可以找到比较新的版本的,现在没有重新编译,我就不去找了。
  3. 还有一个是数据包,包含osg格式的文件,源码所提供的例子中用到的数据文件之类的,学习的时候可以用得到,下载连接是
    http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip
  4. 最后需要一个编译源码的工具CMake,最新版本是3.10.1,官网中有各种格式的下载版本。
  5. 以上资料都下载好了以后,为了编译的顺利进行,将下载的文件组织如下(非必须):
    • 在D盘建立一个OSG的文件夹
    • D:\OSG\OpenSceneGraph ——源码解压后放于此
    • D:\OSG\3rdParty ——第三方依赖库解压后放于此
    • D:\OSG\OpenScenGraph-Data-3.0.0 ——数据包解压后放于此。

开始编译源码

  1. 安装CMake之后,打开CMake -gui.exe
  2. 到D:\OSG\OpenSceneGraph路径下,也就是源码解压后的路径下,可以找到CmakeLists.txt,里面包含了编译信息,将它拖到Cmake界面,或者在”Where is the source code”后面添加CmakeLinsts.txt所在的路径,如图1所示
    图1 图1
  3. 修改编译目标路径,按照上图进行编译,会把编译后的文件跟源码文件都混在OpenSceneGraph文件里,建议把“Where to build the binaries”后面的改为“D:/OSG/OpenSceneGraph/bin”之类的路径,有所区分。
  4. 点击Configure,选择Visual Studio 10(x86),finish后进行相关设置:
    • ACTUAL_3RDPARTY_DIR值D:/OSG/3rdParty;
    • BUILD_OSG_EXAMPLES :ON——如果想学习例子可以选择这项,不选择此项可以提高编译速度。
    • CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph/;
      如下图
      图2
  5. 点击Configure后,将Advanced打勾,将BUILD_MFC_ EXAMPLE设置为on,然后进行最后一次的Configure配置。
  6. 点击Generate,自此建构完成。

正经编译阶段

  1. 用VS2010打开OpenSceneGraph.sln文件(此文件在“Where to build the binaries”后面写的路径下),
    生成->批生成,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间是很长的,估计4-5个小时。
    这里写图片描述
  2. 第1步完成后,再对INSTALL也进行相应生成编译。这段时间相应会短一点。
    这里写图片描述

数据转移

在C盘新建OSG文件夹

将D:\OSG\OpenSceneGraph下的bin,include,lib文件夹拷贝到C:\OSG下,将D:\OSG\OpenSceneGraph-Data-3.0.0下的数据拷贝到C:\OSG\data下;这几个文件是OSG需要的。

环境变量设置

对系统变量设置如下:

OSG_FILE_PATH: C:\OSG\data

PATH:C:\OSG\bin;

可在命令行进行测试 osgversion, osglogo, osgviewer cow.osg。

新建OSG项目测试

  1. 在VS2010下新建WIN32控制台程序

  2. 添加一个cpp

  3. 输入以下代码:

#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main( int argc, char **argv )
{
    osgViewer::Viewer viewer;
    viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
    return viewer.run();
}
  1. 右键项目,选择“属性”,选择“VC++目录”,
    在包含目录添加:C:\OSG\include
    在库目录添加:C:\OSG\lib.
    这里写图片描述
  2. 打开项目属性的链接器,输入里,附加依赖项加上:
    OpenThreadsd.lib
    osgd.lib
    osgDBd.lib
    osgUtild.lib
    osgGAd.lib
    osgViewerd.lib
    osgTextd.lib
  3. 运行,效果如下图:
    这里写图片描述

待续……
赞赏码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值