OSG入门hello world
首先到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复制到运行目录。
更多学习参考:
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。