首先到osgChina下载一个安装包,也就是二进制压缩包。
目前最新是 3.0.1版本
OpenSceneGraph-3.0.1-VS9.0.30729-x86-debug-12741.7z
http://openscenegraph.alphapixel.com/osg/downloads/free-openscenegraph-binary-downloads
http://openscenegraph.alphapixel.com/osg/downloads/free-openscenegraph-binary-downloads
下载后解压到某个目录,比如D:\osg
设置环境变量
PATH: D:\osg\bin
OSG_FILE_PATH: D:\osg\data
这时候你可以用osgViewer查看一下osg文件,比如经典的奶牛cow.osg
在命令行下输入:osgViewerd.exe cow.osg
新建一个vc空项目,设置vc++包含目录和库目录。
vc2010是右击|属性|项目和解决方案|VC++目录
低版本是工具|选项|项目和解决方案|VC++目录
包含文件: D:\osg\include
库文件: D:\osg\lib
右击|属性|配置属性|链接器|输入|附加依赖项
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgFXd.lib
osgGAd.lib
osgManipulatord.lib
osgParticled.lib
osgShadowd.lib
osgSimd.lib
osgTerraind.lib
osgTextd.lib
osgUtild.lib
osgViewerd.lib
如果编译Release版本,去掉d
新建main.cpp输入下面的代码,这次显示一个滑翔机。
//
==========================================================================
// --------------------------------------------------------------------------
// Copyright (c) 2012 大气象 All Rights Reserved.
//
// File : Main.cpp
// Author : greatverve@gmain.com
// Date : 2012-9-19 20:11
// Version : 1.0v
//
// Description : osg hello world.
//
// ==========================================================================
#include <osgViewer/Viewer>
#include <osg/Node>
#include <osg/Geode>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgUtil/Optimizer>
int main()
{
// 创建Viewer对象,场景浏览器
osgViewer::Viewer* viewer = new osgViewer::Viewer();
// 创建场景组节点
osg::Group* root = new osg::Group();
// 创建一个节点
osg::Node* node = new osg::Node();
// 读取一个滑翔机的模型
node = osgDB::readNodeFile( " glider.osg ");
// 添加到场景
root->addChild(node);
// 优化场景数据
osgUtil::Optimizer optimizer ;
optimizer.optimize(root) ;
// 设置场景数据
viewer->setSceneData(root);
// 初始化并创建窗口
viewer->realize();
// 开始渲染
viewer->run();
return 0 ;
}
// --------------------------------------------------------------------------
// Copyright (c) 2012 大气象 All Rights Reserved.
//
// File : Main.cpp
// Author : greatverve@gmain.com
// Date : 2012-9-19 20:11
// Version : 1.0v
//
// Description : osg hello world.
//
// ==========================================================================
#include <osgViewer/Viewer>
#include <osg/Node>
#include <osg/Geode>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgUtil/Optimizer>
int main()
{
// 创建Viewer对象,场景浏览器
osgViewer::Viewer* viewer = new osgViewer::Viewer();
// 创建场景组节点
osg::Group* root = new osg::Group();
// 创建一个节点
osg::Node* node = new osg::Node();
// 读取一个滑翔机的模型
node = osgDB::readNodeFile( " glider.osg ");
// 添加到场景
root->addChild(node);
// 优化场景数据
osgUtil::Optimizer optimizer ;
optimizer.optimize(root) ;
// 设置场景数据
viewer->setSceneData(root);
// 初始化并创建窗口
viewer->realize();
// 开始渲染
viewer->run();
return 0 ;
}
运行结果:
如果提示:osg80-osgd.dll,因此这个应用程序未能启动。
如果提示:osg80-osgd.dll,因此这个应用程序未能启动。
就把D:\osg\osg80-osgd.dll复制到运行目录。
更多学习参考:
http://www.osgchina.org/projects/osgcn/wikicn/Supportcn/ReferenceGuides.php
url: http://greatverve.cnblogs.com/archive/2012/09/19/osg-hello-world.html
url: http://greatverve.cnblogs.com/archive/2012/09/19/osg-hello-world.html
本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/greatverve/archive/2012/09/19/osg-hello-world.html
,如需转载请自行联系原作者