手把手安装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去掉,其余步骤相同。 5、至此,OSG的文件已经存放在磁盘的某个地方,但windows还不知道如何使用它们。要实现这一点,我们需要添加一些系统环境变量事实上如果您只是将OSG作为一个外部依赖库使用的话,这些环境变量都不需要添加,在运行程序时将OSG的DLL文件放置在程序同一目录下即可。当然出于一个好的习惯,我们不妨设置好常用的OSG_DIR(主要用于cmake的FindOSG模块),OSG_FILE_PATH变量,以及PATH 谢谢分享 求助!! 我按照楼主的方法添加了环境变量(系统的)之后在cmd中大osgversion还是提示“不是内部或外部命令”。echo是正确的。前面的都你说的做的。我的系统是win7 请问是这个原因导致不行吗? 你是自己编译的还是安装的?
请检查bin文件夹下是否有osgversion.exe文件 回复 5# tianxiao888
您好! 我是用的安装包。。我最近两天使用了论坛里面各种方法安装OSG都没有成功!最少安了5遍了T_T 准备重新再做一遍 命太苦 安装成功了一定写一个分享T_T 自己编要自己设置环境变量 突然发现_WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用,非得改些设置才能编译成功! 回复 5# tianxiao888
help!!我按照楼主的方法添加了环境变量(系统的)之后在cmd中大osgversion提示“不是内部或外部命令”。echo是正确的。bin文件夹下也有osgversion.exe文件。不知道怎么解决了:dizzy: 解决了,把该程序的路径粘贴到Path系统变量值里就行了,呵呵 先留着以后好好看,我还没找到OSG安装软件呢,悲剧啊 本帖最后由 wsx2736 于 2012-6-28 16:15 编辑
#mazhaojian0818,大神帮忙啊!!!添加了环境变量(系统的)之后在cmd中大osgversion提示“不是内部或外部命令”。echo是正确的。bin文件夹下没有osgversion.exe文件,有osgversiond。不知道怎么解决了 前几天才把linux地下的osg 3.0.1弄好,可惜毕设早就结束了 :L
页:
[1]