console 发表于 2011-4-7 20:59:14

手把手安装Openscenegraph 2.8.3教程

本帖最后由 console 于 2011-4-7 21:06 编辑

近日在网上搜资料研究了N久,终于把Openscenegraph 2.8.3装上,并用VS2008 SP1成功运行测试程序,这里跟大家分享下。

1、获取openscenegraph 2.8.3 Binaries packages。你可以在OSG官方网站的这个网址下载openscenegraph-all-2.8.3-win32-x86-vc80sp1-Debug.zip和openscenegraph-all-2.8.3-win32-x86-vc80sp1-Release.zip这两个文件。

2、解压上述两个文件到你随意指定的一个目录中,例如:C:\Program Files\OpenSceneGraph-2.8.3。提示相同文件是否覆盖时,选择否。解压完成后,该目录下应该包含5个文件夹:bin、doc、include、lib和share。部分文件夹同时包含Debug和Release版本编译的文件,其中对于Debug版本编译的文件,在文件扩展名前以“d”结尾。

3、获取Sample Datasets。你可以在OSG官方网站的这个网址下载OpenSceneGraph-Data-2.8.0.zip这个文件。

4、解压上述Sample文件到你随意指定的一个目录中,例如:C:\Program Files\OpenSceneGraph-2.8.3\samples\OpenSceneGraph-Data-2.8.0。这些文件对于运行一些例子和提供一些基本的文字和贴图非常有用。

5、至此,OSG的文件已经存放在磁盘的某个地方,但windows还不知道如何使用它们。要实现这一点,我们需要添加一些系统环境变量。具体如下:
⑴ 右键点击“我的电脑”,选“属性”,在“高级”选项卡中点击“环境变量”。
⑵ 在系统变量一栏,新建以下变量:
    ①        变量名:OSG_ROOT;变量值:C:\Program Files\OpenSceneGraph-2.8.3;
    ②        变量名:OSG_BIN_PATH;变量值:%OSG_ROOT%\bin;
    ③        变量名:OSG_INCLUDE_PATH;变量值:%OSG_ROOT%\include;
    ④        变量名:OSG_LIB_PATH;变量值:%OSG_ROOT%\lib;
    ⑤        变量名:OSG_SAMPLES_PATH;变量值:%OSG_ROOT%\share\OpenSceneGraph\bin;
    ⑥        变量名:OSG_FILE_PATH;
      变量值:%OSG_ROOT%\samples\OpenSceneGraph-Data-2.8.0;%OSG_ROOT%\samples\OpenSceneGraph-Data-2.8.0\Images

6、现在就可以检查OSG的安装了,在开始菜单——运行——输入cmd,打开系统的命令行窗口:
⑴ 输入命令:echo %OSG_ROOT%,该命令显示OSG的安装路径,按照上述示例,显示结果为:C:\Program Files\OpenSceneGraph-2.8.3;
⑵ 输入命令:osgversion,该命令输出OSG的版本号,按照上述示例,显示结果为:OpenSceneGraph Library 2.8.3;
⑶ 输入命令:osgviewer cow.osg,该命令调用OSG的Viewer程序显示一头牛的模型,按Esc键退出。

7、现在开始建立一个Visual Studio的工程。(以Visual Studio2008 SP1为例)
⑴ 打开Visual Studio2008,选择File > New > Project…,在Visual C++下选择新建一个Empty Project;
⑵ 在“Solution Explorer”中右键点击,选择Add>New Item…,创建一个新的C++ file,例如命名为Main.cpp;
⑶ 在“Solution Explorer”中右键点击Solution’’,选择Properties,在Configuration Properties的Configuration中选择Debug;
⑷ 在“Solution Explorer”中右键点击,点Properties,左边选择Configuration Properties > C/C++ > General,在右边Additional Include Directories中添加“$(OSG_INCLUDE_PATH)”;
⑸ 左边选择Configuration Properties > C/C++ > Preprocessor,在右边Preprocessor Definitions中添加“WIN32;_WIN32;_DEBUG”;
⑹ 左边选择Configuration Properties > Linker > General,在右边Additional Library Directories中添加“$(OSG_LIB_PATH)”;
⑺ 左边选择Configuration Properties > Linker > Input,在右边Additional Dependencies中添加“osgd.lib osgGAd.lib osgDBd.lib osgViewerd.lib osgTextd.lib osgUtild.lib OpenThreadsd.lib”。

8、最后在Main.cpp中写几句实现OSG的代码测试一下,简单如下:
      #include <osgDB/ReadFile>
      #include <osgViewer/Viewer>
               
      void main()
       {
                        osgViewer::Viewer viewer;
                        viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
                        viewer.realize();
                        viewer.run();
       }

9、点F5编译执行后,看到一架滑翔机模型,鼠标三键能控制旋转、平移、缩放,测试成功。

10、上述步骤是Debug编译,如要Release编译,则在Configuration中把Debug改成Release,在Preprocessor Definitions中把_ DEBUG改成NDEBUG,在Additional Dependencies中把所有.lib文件扩展名前的末字母d去掉,其余步骤相同。

array 发表于 2011-4-8 08:17:24

5、至此,OSG的文件已经存放在磁盘的某个地方,但windows还不知道如何使用它们。要实现这一点,我们需要添加一些系统环境变量事实上如果您只是将OSG作为一个外部依赖库使用的话,这些环境变量都不需要添加,在运行程序时将OSG的DLL文件放置在程序同一目录下即可。当然出于一个好的习惯,我们不妨设置好常用的OSG_DIR(主要用于cmake的FindOSG模块),OSG_FILE_PATH变量,以及PATH

tianxiao888 发表于 2011-4-8 20:43:36

谢谢分享

cheetah90 发表于 2011-4-20 21:21:12

求助!! 我按照楼主的方法添加了环境变量(系统的)之后在cmd中大osgversion还是提示“不是内部或外部命令”。echo是正确的。前面的都你说的做的。我的系统是win7 请问是这个原因导致不行吗?

tianxiao888 发表于 2011-4-22 18:34:26

你是自己编译的还是安装的?

请检查bin文件夹下是否有osgversion.exe文件

cheetah90 发表于 2011-4-22 21:44:01

回复 5# tianxiao888


    您好! 我是用的安装包。。我最近两天使用了论坛里面各种方法安装OSG都没有成功!最少安了5遍了T_T 准备重新再做一遍 命太苦 安装成功了一定写一个分享T_T

tianxiao888 发表于 2011-4-25 12:22:24

自己编要自己设置环境变量

liming 发表于 2011-7-23 13:08:27

突然发现_WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用,非得改些设置才能编译成功!

mazhaojian0818 发表于 2011-9-8 09:25:32

回复 5# tianxiao888


    help!!我按照楼主的方法添加了环境变量(系统的)之后在cmd中大osgversion提示“不是内部或外部命令”。echo是正确的。bin文件夹下也有osgversion.exe文件。不知道怎么解决了:dizzy:

mazhaojian0818 发表于 2011-9-8 09:45:08

解决了,把该程序的路径粘贴到Path系统变量值里就行了,呵呵

glk 发表于 2011-9-13 10:07:39

先留着以后好好看,我还没找到OSG安装软件呢,悲剧啊

wsx2736 发表于 2012-6-28 16:13:25

本帖最后由 wsx2736 于 2012-6-28 16:15 编辑

#mazhaojian0818,大神帮忙啊!!!添加了环境变量(系统的)之后在cmd中大osgversion提示“不是内部或外部命令”。echo是正确的。bin文件夹下没有osgversion.exe文件,有osgversiond。不知道怎么解决了

galuodo 发表于 2012-6-28 20:56:15

前几天才把linux地下的osg 3.0.1弄好,可惜毕设早就结束了

tianxiao888 发表于 2012-7-2 10:19:51

:L
页: [1]
查看完整版本: 手把手安装Openscenegraph 2.8.3教程