首先下载所需文件:
最新版的osg库(我的版本:OpenSceneGraph-3.0.1.zip),可以在osg官网下载: http://www.osgchina.org/projects/osgcn/wiki.php
安装源代码所需要的工具CMAKE:(我的版本:cmake-2.6.4-win32-x86.zip) http://www.cmake.org/cmake/resources/software.html
第三方支持(图像)库:(我的版本:3rdParty_Win32Binaries_vc90sp1.zip) http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies,
根据不同开发工具选择不同的文件,我的是vs2008
示例数据文件包:(我的版本是:OpenSceneGraph-Data-2.8.0.zip)可以在osg官网下载
其次准备编译环境:
在D盘建立osg文件夹,将上述四个文件拷贝解压到osg文件夹下(注意:需要把cmake工具最好也解压到这儿,否则可能会出现错误):
D:\OSG\3rdParty_x86_x64(放置图像库)
D:\OSG\cmake-2.8.8-win32-x86(放置cmake工具)
D:\OSG\OpenSceneGraph-3.0.1(放置osg库文件)
D:\OSG\OpenSceneGraph-Data-3.0.0(示例数据解压文件),主要用于example展示
开始编译:
在D:\OSG\OpenSceneGraph-3.0.1下新建两个文件夹build和bin用于放置编译文件
双击打开D:\OSG\cmake-2.8.8-win32-x86\bin下的cmake-gui.exe文件,把OpenSceneGraph-3.0.1下的CMakeLists.txt拖到cmake界面,设置sourcecode和binaries的文件路径
D:/OSG/OpenSceneGraph-3.0.1(源码路径)、D:/OSG/OpenSceneGraph-3.0.1/build(编译的二进制文件路径)
设置cache value参数:
ACTUAL_3RDPARTY_DIR,:设置为前面的D:\OSG\3rdParty_x86_x64\x86(因为文件夹下有x86和x64两个文件夹)
BUILD_OSG_EXAMPLES :ON,即编译实例
CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph-3.0.1/bin ,设置编译成功后,相关的库文件存放的地址,切勿忘记
点击configure按钮,弹出选择工具,我的是visual studio 2008, 进行第一次配置
第一次配置完成后,将mfc example 设置为on,将右上角的show advanced values 复选框选择上.
点击configure进行第二次配置,配置完成后,点击generate按钮开始生成
generate完成以后会在D:\OSG\OpenSceneGraph-3.0.1\build文件下生成OpenSceneGraph.sln
用vs进行编译
用vs2008打开OpenSceneGraph.sln解决方案
点击“生成--批生成”菜单,选择ALL BUILD的debug和release版本,开始生成,这需要很长很长的时间
……………………
完成以后,又生成INSTALL的debug和release版本,仍然需要很长时间
………………
结束以后会发现在D:/OSG/OpenSceneGraph-3.0.1\bin目录下生成了几个文件夹
设置环境变量
在系统变量Path中添加D:\OSG\OpenSceneGraph-3.0.1\bin\bin,用于dll的调用
新建一个用户变量OSG_FILE_PATH,设置值为D:\OSG\OpenSceneGraph-Data-3.0.0,用于调用example
打开VS2008,工具->选项->项目解决方案->VC++目录,分别设置OSG的头文件及库文件
包含文件里添加:D:/OSG/OpenSceneGraph-3.0.1\bin\include
库文件添加:D:/OSG/OpenSceneGraph-3.0.1\bin\lib
测试:
打开命令行,输入osgversion会出现osg版本
输入osgViewer cow.osg,出现奶牛
如果以上都成功,说明osg已经安装成功
新建OSG项目测试
(1) 打开VS2008,创建一个WIN32控制台程序。
(2)注意:请选空项目,在源程序中添加一个新项,添加一个C++文件(cpp)。
(3)在这个CPP文件中输入代码:
#include "windows.h" //如果不添加这个头文件,会出现在gl.h中的错误
#include
#include
int main( int, char ** )
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
(4)打开项目属性的链接器,输入里加上:
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
运行程序,会出现一头奶牛。
如果运行不成功出现“无法启动程序,丢失osg80-osgDBd.dll文件
网上搜了很多,说是没有将dll文件目录添加到环境变量里面,如果确定已经添加,那么重新启动机器。
重启以后,发现第一个错误没有了,不过有出现说丢失zlibd1.dll文件。
解决方法是将D:\OSG\3rdParty_x86_x64\x86\bin下的zlibd1.dll、zlib1.dll和zlibd.pdb文件拷到D:/OSG/OpenSceneGraph-3.0.1\bin\bin目录下,这样应该就可以运行了。
osg在win7+vs2008下的环境搭建成功,开始学习osg编程吧,祝你好运!