天天看點

OSG環境搭建

首先下載下傳所需檔案:

最新版的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 <osgViewer/Viewer>

        #include <osgDB/ReadFile>

        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程式設計吧,祝你好運!