OSG+VS2010+Win7 64位环境搭建

前言:

OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;而更低层次的OpenGL 硬件抽象层(HAL)实现了底层硬件显示的驱动

OpenSceneGraph是一个开源的三维引擎,被广泛的应用在可视化仿真、游戏、虚拟现实、科学计算、三维重建、地理信息、太空探索、石油矿产等领域。OSG采用标准C++和OpenGL编写而成,可运行在所有的Windows平台、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD 操作系统。OSG在各个行业均有着丰富的扩展,能够与使用OpenGL书写的引擎无缝的结合,使用国际上最先进的图形渲染技术,让每个用户都能站在巨人的肩上。

一.相关文件下载

1.1 Osg源码

OpenSceneGraph的3.0.0.zip(现在最新版已经到3.4了)

下载链接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip

1.2 Osg第三方库

3rdParty_VC10_x86_x64.zip

下载链接:http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip

1.3 OSG官方示例数据包

OpenSceneGraph-Data-3.0.0.zip

下载链接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip

1.4 安装源码工具(虽然写的x86的,但是64位系统也可以用的)

1.4.1 之前版本下载连接: cmake-2.8.4-win32-x86.exe

1.4.2 最新版本下载连接: cmake-3.4.1-win32-x86.exe

二、编译环境创建

为了编译的顺利进行,将下载的文件组织如下,在E盘建立一个OSG的文件夹,然后其他文件如下放置:

E:\OSG\OpenSceneGraph,源码解压后放于此;

E:\OSG\3rdParty,第三方依赖库解压后放于此;

注意:这个里面的第三方库一般包含x64和x86的两个版本的,这里要根据你自己的电脑需要选择一个然后把里面的文件复制到3rdParty文件夹中。

由于本人的电脑是64位的系统,所以我选择的留下了的是“x86”。

之所以选择x86,也就是32位是因为64位的隐患很大,很多库没有64位的,

而我也自己亲身实践过,在后面的VS批生成的时候导致ALL_INSTALL出现了2个失败,在后面的直接4个全失败。所以这里我建议选择使用32位的;

E:\OSG\data,数据包解压后放于此。

三.编译OSG源码

3.1 首先安装CMake,之后打开CMake -gui.exe

这里要补充说下,因为有些教程里面说到,在创建” E:\OSG\OpenSceneGraph”文件夹之后,

最好在里面新建两个文件夹,一个叫”build”;一个叫”bin”;

3.2 将源码OpenSceneGraph文件夹里头的CmakeLists.txt,拖到Cmake界面,如图:


CMake

  技术分享

然后将“where to build the binaries”设置为,刚刚新建的“build”文件夹,具体如上图。

3.3 点击Configure,选择Visual Studio 10,如下图:


Configure

   技术分享

这里需要说的是,因为我上面第三方依赖库我保留的是x86,所以我这里也就自然选择VS10就可以了;

另外还有一个是VS10 Win64 的那就是要对应之前的第三方依赖库的选择了;

3.4 点击Finish之后,等一下,然后进行相关设置:

ACTUAL_3RDPARTY_DIR:E:/OSG/3rdParty

BUILD_OSG_EXAMPLES :勾上

CMAKE_INSTALL_PREFIX:E:/OSG/OpenSceneGraph/

如下图:


相关设置

  技术分享

3.5 点击Configure后,等一会;

然后将Advanced打勾,将BUILD_MFC_ EXAMPLE设置为on,进行最后一次的Configure配置,点击Configure:

如果这过程中下面的这个区域:


区域

  技术分享

出现了红色的乱码,可能是跟你的VS10的一些默认项目文件存放的路径有关,之所以会乱码,是因为可能上面说到的路径有中文。

所以,建议不要去修改VS10的一些默认的存放的路径,避免不必要的错误。

当然随着这步勾选上BUILD_MFC_ EXAMPLE,正常的情况应该是中间区域的红色会全部消失,但是下面的区域你去查看会发现任然有些红色的语句警告,这无关紧要;

继续进行下一步。

3.6 点击Generate,自此建构完成。

四.编译阶段

4.1 用VS2010打开OpenSceneGraph.sln(此文件在E:\OSG\OpenSceneGrap\build下);

找到菜单:生成-批生成,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间是很长的,估计2个小时左右,主要看电脑,这的确要很久;

建议大家要耐心等待,代码好像要走到13000左右差不多就好了,这段时间可以打局LOL或者看看视频之类的,玩笑了。


生成方案

4.2 第1步完成后,再对INSTALL也进行相应生成编译,这段时间很快的:

INSTALL生成编译

五.数据转移

在C盘新建OSG文件夹(这个可以放在你想放的地方,不仅仅限于C盘,因为毕竟不是所有人都是把C盘设置的很大,而且不免有些人的C盘是容量不大的SSD)

将E:\OSG\OpenSceneGraph下的bin,include,lib文件夹,拷贝到C:\OSG下;

将E:\OSG\data下的数据,拷贝到C:\OSG\data下;

这几个文件是OSG需要的。

六.环境变量设置

6.1右击“计算机”,然后“属性”,在计算机属性窗口的左边有个高级系统设置,如下图:

系统属性变量

点击之后,高级--环境变量,对系统变量设置如下:

新建一个变量:OSG_FILE_PATH:C:\OSG\data

追加变量内容:PATH:C:\OSG\bin;

6.2 在命令行(CMD)进行测试:

osgversion

osgviewer cow.osg

osglogo

注意:测试osglogo时,出现如下错误:

‘osglogo‘ 不是内部或外部命令,也不是可运行的程序
    或批处理文件。

这个原因我搜索了一下osglogo.exe,发现它存在于两个地方:

E:\OSG\OpenSceneGraph\share\OpenSceneGraph\bin
    E:\OSG\OpenSceneGraph\build\bin

实际上到这一步,已经编译成功,如果觉得非得调出osglogo的话,就把osglogo.exe复制到C:\OSG\bin下面,就可以了。

七.新建OSG项目测试

7.1 在VS2010下,找到C++,新建WIN32控制台程序;

7.2 添加一个cpp;

7.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();
 }

7.4 右键项目,选择“属性”,选择“VC++目录”,在包含目录添加:C:\OSG\include,在库目录添加:C:\OSG\lib

VC++目录添加依赖库lib

7.5 打开项目属性的链接器,在输入厘米那,附加依赖项加上:

OpenThreadsd.lib

osgd.lib

osgDBd.lib

osgUtild.lib

osgGAd.lib

osgViewerd.lib

osgTextd.lib

7.6 运行,效果如下图:

效果图

Congratulations,下面你就可以享受OSG的世界了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容