查看: 5982|回复: 13

手把手安装Openscenegraph 2.8.3教程

[复制链接]

该用户从未签到

发表于 2011-4-7 20:59:14 | 显示全部楼层 |阅读模式
本帖最后由 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”中右键点击[ProjectName],选择Add>New Item…,创建一个新的C++ file,例如命名为Main.cpp;
⑶ 在“Solution Explorer”中右键点击Solution’[ProjectName]’,选择Properties,在Configuration Properties的Configuration中选择Debug;
⑷ 在“Solution Explorer”中右键点击[ProjectName],点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去掉,其余步骤相同。

该用户从未签到

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

该用户从未签到

发表于 2011-4-8 20:43:36 | 显示全部楼层
谢谢分享

该用户从未签到

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

该用户从未签到

发表于 2011-4-22 18:34:26 | 显示全部楼层
你是自己编译的还是安装的?

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

该用户从未签到

发表于 2011-4-22 21:44:01 | 显示全部楼层
回复 5# tianxiao888


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

该用户从未签到

发表于 2011-4-25 12:22:24 | 显示全部楼层
自己编要自己设置环境变量

该用户从未签到

发表于 2011-7-23 13:08:27 | 显示全部楼层
突然发现_WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用,非得改些设置才能编译成功!

该用户从未签到

发表于 2011-9-8 09:25:32 | 显示全部楼层
回复 5# tianxiao888


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

该用户从未签到

发表于 2011-9-8 09:45:08 | 显示全部楼层
解决了,把该程序的路径粘贴到Path系统变量值里就行了,呵呵

该用户从未签到

发表于 2011-9-13 10:07:39 | 显示全部楼层
先留着以后好好看,我还没找到OSG安装软件呢,悲剧啊

该用户从未签到

发表于 2012-6-28 16:13:25 | 显示全部楼层
本帖最后由 wsx2736 于 2012-6-28 16:15 编辑

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

该用户从未签到

发表于 2012-6-28 20:56:15 | 显示全部楼层
前几天才把linux地下的osg 3.0.1弄好,可惜毕设早就结束了

该用户从未签到

发表于 2012-7-2 10:19:51 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表