这两天心血来潮,突然想学点OSG的东西,其实OSG本身是挺好用的,就是编译安装有点让人头疼,佛祖保佑,终于编译成功了,为便来着参考,将过程记录如下:
一、准备工作
下载相关的工具软件:
1, 最新版的OSG库:OpenSceneGraph-2.8.2.zip。
2, 安装源代码所需要的工具:cmake-2.6.4-win32-x86.zip
3, Windows支持的图像库:3rdParty_Win32Binaries_vc90sp1.zip,因为我用的是vc2008,如果用vc05应该有其它针对的版本
4, 数据文件包:OpenSceneGraph-Data-2.8.0.zip
二、编译准备
为了编译的顺利进行,将下载的文件组织如下:
在C盘建立一个OSG的文件夹,然后其他文件如下放置:
C:\OSG\OpenSceneGraph(放置OSG最新库文件)
C:\OSG\3rdParty(放置图像库)
C:\OSG\data(放置OpenSceneGraph-Data-2.8.0.zip的加压数据),主要用于examples演示
三、用cmake生成Project & Solution files
1, 在C:\OSG\OpenSceneGraph下新建两个文件夹,分别命名为build, bin,用于放置编译文件
2, 解压cmake-2.6.4,打开bin/CMakeSetup.exe,将C:\OSG\OpenSceneGraph下的CMakeLists.txt拖到界面上,
3, 设置where is the source code 为:C:\OSG\OpenSceneGraph
和where to build thebinnaries.为:C:\OSG\OpenSceneGraph\build
4, 设置相关的cache value参数,这里主要设置的参数包括:
ACTUAL_3RDPARTY_DIR,:设置为前面的C:\OSG\3rdParty
BUILD_OSG_EXAMPLES :ON,即编译实例
CMAKE_INSTALL_PREFIX:C:/OSG/OpenSceneGraph/bin ,设置编译成功后,相关的库文件存放的地址,切勿忘记
5, 点击configure按钮,进行第一次配置
6, 第一次配置完成后,将右上角的show advanced values 复选框选择上,将mfc example 设置为on
7, 点击configure按钮进行第二次配置,ok按钮变为可用,就可点击ok按钮开始生成
四、在VS下编译库文件
1,到C:\OSG\OpenSceneGraph\build文件夹下打开OpenSceneGraph.sln,选择对于的版本(debug,release)
2,按F7生成,生成完成后,在解决方案栏下找到install工程,点击右键->build
五、设置环境变量
右击我的电脑->属性->高级->环境变量,添加相应的环境变量如下:
用户变量:OSG_FILE_PATH = C:\OSG\data
系统变量path下添加 ;C:\OSG\OpenSceneGraph\bin\bin ,主要用于dll的调用
六、设置VS
打开VS2008,工具->选项->项目解决方案->VC++目录,分别设置OSG的头文件及库文件
包含文件里添加:C:\OSG\OpenSceneGraph\bin\include
库文件添加:C:\OSG\OpenSceneGraph\bin\lib
七、新建OSG项目测试
(1) 打开VS2008,创建一个WIN32控制台程序。
(2)注意:请选空项目,在源程序中添加一个新项,添加一个C++文件(cpp)。
(3)在这个CPP文件中输入代码:
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main( int, char ** )
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "fountain.osg" ) );
return viewer.run();
}
(4)打开项目属性的链接器,输入里加上:
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
注意:我这里编译的是debug版本,所以编译的库都有的命名为*d.lib,如果是release版本,这里要略做修改。
(5)运行程序,一个喷泉三维效果:
资料参考:
1, http://www.openscenegraph.org/projects/osg/wiki/Support/PlatformSpecifics/VisualStudio
2, http://ydwcowboy.blog.163.com/blog/static/25849015200951911248687/