OSG入门hello world

简介:
首先到osgChina下载一个安装包,也就是二进制压缩包。
目前最新是 3.0.1版本
下载后解压到某个目录,比如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 ;
}
复制代码
运行结果:

如果提示:osg80-osgd.dll,因此这个应用程序未能启动。
就把D:\osg\osg80-osgd.dll复制到运行目录。
更多学习参考:









    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/greatverve/archive/2012/09/19/osg-hello-world.html ,如需转载请自行联系原作者
相关文章
|
6月前
|
搜索推荐 C++ Windows
[学习][笔记]C++/WinRT入门 01Hello world
[学习][笔记]C++/WinRT入门 01Hello world
|
C语言 Android开发 C++
《OpenGL ES 2.0 Programming Guide》第12章“最简单的FBO Depth Texture”示例代码【C语言版】
《OpenGL ES 2.0 Programming Guide》第12章“最简单的FBO Depth Texture”示例代码【C语言版】
148 0
《OpenGL ES 2.0 Programming Guide》第12章“最简单的FBO Depth Texture”示例代码【C语言版】
|
C语言
《OpenGL ES 2.0 Programming Guide》第8章 “最简单的Vertex Buffer Object”示例代码【C语言版】
《OpenGL ES 2.0 Programming Guide》第8章 “最简单的Vertex Buffer Object”示例代码【C语言版】
128 0
|
C语言
《OpenGL ES 2.0 Programming Guide》第12章 “最简单的Multi-Pass+VBO”示例代码【C语言版】
《OpenGL ES 2.0 Programming Guide》第12章 “最简单的Multi-Pass+VBO”示例代码【C语言版】
122 0
《OpenGL ES 2.0 Programming Guide》第12章 “最简单的Multi-Pass+VBO”示例代码【C语言版】