OpenSceneGraph环境搭建

因为3D游戏开发课程需要,最近在看OSG(OpenSceneGraph),根据我个人的理解,它类似于GLUT,是在GL库函数层面之上的开发接口。通过对GL库函数的整合和优化,它提供了比GL库函数更方便使用的功能。尽管它在很多领域都被广泛应用,但是搭建环境的过程却很少能在网上找到合适的教程。在经历了1天的摸索之后,我终于大概通过一篇教程掌握了大致的方法,大致如下:

1.先到http://www.openscenegraph.org/index.php/download-section/stable-releases(如果失效了自己从首页http://www.openscenegraph.org/里找)下载最新的OSG代码文件

由于openscenegraph的开源性,任何人都可以参与到它的开发中来,为它添砖加瓦。所以它的源代码都是开放的,下载下来的文件都是未编译过的代码文件。大家都知道,要在自己的程序中应用别人写好的代码要#include,但是我们下载到的是OSG源码(为了方便开源开发,因为不同的IDE会生成不同的工程,比如Visual Studio的.sln,都用源码是最具兼容性的方法),必须先进行编译之后得到相应的.lib,.dll和头文件,并在IDE中(我用的VS2013)设置好相应的路径才行。而这个编译过程由于源文件众多,不熟悉源码的人也不知道该编译哪些,而且通过手动添加的方式过于繁琐,所以要用到下面介绍的工具。

2.再到https://cmake.org/download/(如果失效了自己从首页https://cmake.org/里找)下载最新的CMake(要二进制版本,能直接安装的),这个软件的作用就是按照指定的配置编译指定的源文件。大家下载好的OSG代码文件夹中会发现一个叫CMakeList的.txt文件,这里面就是按照CMake的语言写好的配置文件。在安装完CMake后打开它的图形界面(我下载的版本直接点击图标就好)会看到如下图界面:

现在,将上面提到的下载好的OSG的文件夹中的CMakeFile.txt拖到这个窗口中,这样的话所有的配置都会按这个txt文件中指定的进行设置,此处唯一需要注意的是目标工程的位置,就是上图“目标地址”的地方,默认会把它设置成与源地址相同的地方,建议改成一个独立的文件夹。

然后点击“Configure”按照自己的情况设置,不懂得地方基本上默认就行。然后程序就会自己为你配置生成工程所需的信息。

配置完成后,会在中间有Name和Value的窗口中看到好多的选项,这些选项对于当前的任务(能运行一个例子)来说都可以不用更改。

点击生成。生成之后,CMake会在目标地址的位置建立好你之前选择的类型的工程,我的就是.sln,双击用Visual Studio打开工程,如下图所示:

      

先对ALL_BUILD进行编译(Build),然后再对INSTALL进行编译(Build)。这样就大功告成获得了include文件夹,完整的lib文件夹,完整的bin文件夹。将这三个文件夹拷贝到一个独立的位置保存好,但是这里的include还不完整,你需要把下载的OSG源文件夹中的include文件夹与当前得到的include文件夹合并,这样就获得了完整的OSG套装!

这三个文件夹才是OSG的精髓,之前所做的都是为了获得这三个东西。

3.现在就可以进行编程了。新建一个c++工程,将下面的代码进行编译,观察结果:

//==========================================================================
//--------------------------------------------------------------------------
// Copyright (c) 2012 大气象 All Rights Reserved.
//
// File : Main.cpp
// Author : [email protected]
// 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("cessna.osg");

    //添加到场景
    root->addChild(node);

    //优化场景数据
    osgUtil::Optimizer optimizer;
    optimizer.optimize(root);

    //设置场景数据
    viewer->setSceneData(root);

    //初始化并创建窗口
    viewer->realize();

    //开始渲染
    viewer->run();

    return 0;
}

你会发现编译无法通过,那是因为我们没将上面的三个文件添加到这个工程的包含目录中。而默认的目录中只有stdio.h,iostream等等常用的这些,所以自然无法通过。我们有两种方法解决这个问题,一是将这三个文件夹拷贝到默认目录下,二是将这三个文件夹所在的父文件夹的路径添加到Visual Studio的包含目录中。第一个不推荐,因为默认目录下的东西太多,不方便管理。这里只对第二种方法进行演示:

右键这个工程,选择属性:

在弹出的页面中设置include和lib文件夹的位置(bin文件夹只需要和lib文件夹在同一父目录下即可):

点击确定完成,再进行编译,就可以运行了。但是场景中什么都没有,但是代码上说应该有一个模型,这是因为这个模型是从一个指定的位置读取来的,但是在这个位置没有这个文件。如果想正确的显示这个场景,需要到官网的Data Resources页面下http://www.openscenegraph.org/index.php/download-section/data下载相对应的模型文件夹。

下载完成后将其解压拷贝到include、lib、bin文件夹所在的父文件夹下面,然后重命名为data(貌似大小写无所谓),记住文件夹的名字一定要改成“data”!!!然后大功告成(可以在代码中把模型的名字换成文件夹里有的其他模型看看效果)!

时间: 2024-10-13 11:33:43

OpenSceneGraph环境搭建的相关文章

【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建

虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半的光阴,这段时间,不仅是知识.阅历.成长获得最大的一段,也是人生的一大转折点.在这期间,得以继续深造学习自己的专业,虽然踏入这行的时候,也是调剂来的,但是我用这3年的时间,恶补自己7年的不足:2015年,发生了三件大事,我毕业了,我工作了,我有女票了(三件事的重要程度递增):吃得苦中苦,方位人上人,

OSG+VS2010+win7环境搭建---OsgEarth编译

OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-

Win8.1+vs2012+osg环境搭建

Win8.1+vs2012+osg环境搭建 一.    相关准备 a) Osg源码 当前最新版:OpenSceneGraph-3.2.0.zip 下载链接: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip b) Osg第三方库 3rdParty_VS2012.3_v110_x86_x64_V8b_small.7z http://ww

OSG+VS2010+win7环境搭建

Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip b) Osg第三方库 3rdParty_VC10_x86_x64.zip http://members.iinet.net.au/~bch

WIN10系统下OSG+VS2017或者2019环境搭建

** WIN10系统下OSG+VS2017环境搭建**一.资料准备1.OSG源码下载地址:http://www.openscenegraph.org/index.php/download-section/stable-releases(OpenSceneGraph-3.4.1 release 稳定版本). 2.OSG第三方依赖库下载地址:http://www.openscenegraph.org/index.php/download-section/dependencies(3rdParty_V

一、环境搭建

1 更新到最新版本的pip(这是安装python扩展包的一个插件)命令如下: python -m pip install --upgrade pip 2 使用pip安装virtualenv,命令 pip install virtualenv  如果要指定版本号,pip install virtualenv==15.0.1(安装虚拟环境) 3 创建django虚拟环境,命令 virtualenv django_basic_venv 4 使用虚拟环境 需要进入到安装目录的Scripts文件夹下,运行

Ionic2环境搭建及文件目录介绍

[注]引用自:http://blog.csdn.net/jasonzds/article/details/53821184 1环境搭建 一年前研究混合框架,初步确定了四种方案给公司选择,ionic,hbuilder,wex5,react-native这四个框架各有优缺点,ionic和react-native是国外框架,相对好一点,文档更新很快,就不一一说了,大概的思路都是一样的,js逻辑实现,同时调用原生功能,h5,css3 UI实现,其实他们都有自己的ui框架,当时选择了国内的hbuiler,

Selenium+Java+Eclipse 自动化测试环境搭建

一.下载Java windows java下载链接 https://www.java.com/zh_CN/download/win10.jsp 二.安装Java 安装好后检查一下需不需要配置环境变量,现在java 8已经不用配置环境变量了,直接在命令行输入:java -version 三.下载和安装Eclipse windows Eclipse下载链接 https://www.eclipse.org/downloads/ 你也可以下载绿色版 四.下载selenium,然后解压 selenium

Qt在Mac OS X下的编程环境搭建(配置Qt库和编译器,有图,很清楚)

尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/46234079 在Mac OS X下使用Qt开发,需要配置Qt库和编译器.编译器只能使用苹果公司自主研发的Clang.1.分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了. https://developer.apple.com/downloads/ 2.下载Qt并默认安装 http://down