OpenSceneGraph(OSG)+VS2010的環境搭建

簡介

OpenSceneGraph(簡稱OSG)是一個開放源碼,跨平臺的圖形開發包,它爲諸如飛行器仿真,遊戲,虛擬現實,科學計算可視化這樣的高性能圖形應用程序開發而設計。它基於場景圖的概念,它提供一個在OpenGL之上的面向對象的框架,從而能把開發者從實現和優化底層圖形的調用中解脫出來,並且它爲圖形應用程序的快速開發提供很多附加的實用工具。

我接觸OSG是在2013年左右,當時是想在三維虛擬環境中顯示連桿機器人的運動姿態,並增加一些機器人與虛擬環境的交互功能,找了一下開發工具,主要有Unity和OSG。Unity好像是收費的,對計算機的要求又很高,畢竟主要用於遊戲開發的嘛。而OSG是開源的,完全是由標準C++程序和OpenGL寫的,網上公開的資料也比較豐富,所以就選擇了使用OSG,使用過程還是挺舒心的。主要用到了節點的裝配,碰撞檢測,還有一些動畫顯示,至於渲染之類的高級應用沒有用過。

下面是OSG在VS2010環境下的搭建過程,主要參考了緱城浪子的博客,具體實施步驟如下:

首先,是一些準備工作。

  1. 第一步當然是準備源碼了,我當時使用的是OpenSceneGraph 3.0版本,是在官方網站上下載的,現在已經出到3.4.1版本了,可以到GitHub找到源碼。以下是以上兩個鏈接:
    http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip
    https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.4.1
  2. 再有就是第三方依賴包,包括OSG各個插件的依賴包,比如libpng,libjpeg……,這個的下載鏈接是http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip,這個我記得官網上也是可以找到比較新的版本的,現在沒有重新編譯,我就不去找了。
  3. 還有一個是數據包,包含osg格式的文件,源碼所提供的例子中用到的數據文件之類的,學習的時候可以用得到,下載連接是
    http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip
  4. 最後需要一個編譯源碼的工具CMake,最新版本是3.10.1,官網中有各種格式的下載版本。
  5. 以上資料都下載好了以後,爲了編譯的順利進行,將下載的文件組織如下(非必須):
    • 在D盤建立一個OSG的文件夾
    • D:\OSG\OpenSceneGraph ——源碼解壓後放於此
    • D:\OSG\3rdParty ——第三方依賴庫解壓後放於此
    • D:\OSG\OpenScenGraph-Data-3.0.0 ——數據包解壓後放於此。

開始編譯源碼

  1. 安裝CMake之後,打開CMake -gui.exe
  2. 到D:\OSG\OpenSceneGraph路徑下,也就是源碼解壓後的路徑下,可以找到CmakeLists.txt,裏面包含了編譯信息,將它拖到Cmake界面,或者在”Where is the source code”後面添加CmakeLinsts.txt所在的路徑,如圖1所示
    圖1 圖1
  3. 修改編譯目標路徑,按照上圖進行編譯,會把編譯後的文件跟源碼文件都混在OpenSceneGraph文件裏,建議把“Where to build the binaries”後面的改爲“D:/OSG/OpenSceneGraph/bin”之類的路徑,有所區分。
  4. 點擊Configure,選擇Visual Studio 10(x86),finish後進行相關設置:
    • ACTUAL_3RDPARTY_DIR值D:/OSG/3rdParty;
    • BUILD_OSG_EXAMPLES :ON——如果想學習例子可以選擇這項,不選擇此項可以提高編譯速度。
    • CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph/;
      如下圖
      圖2
  5. 點擊Configure後,將Advanced打勾,將BUILD_MFC_ EXAMPLE設置爲on,然後進行最後一次的Configure配置。
  6. 點擊Generate,自此建構完成。

正經編譯階段

  1. 用VS2010打開OpenSceneGraph.sln文件(此文件在“Where to build the binaries”後面寫的路徑下),
    生成->批生成,對All_BUILD進行生成,選擇(Debug和Release兩個版本),這段編譯時間是很長的,估計4-5個小時。
    這裏寫圖片描述
  2. 第1步完成後,再對INSTALL也進行相應生成編譯。這段時間相應會短一點。
    這裏寫圖片描述

數據轉移

在C盤新建OSG文件夾

將D:\OSG\OpenSceneGraph下的bin,include,lib文件夾拷貝到C:\OSG下,將D:\OSG\OpenSceneGraph-Data-3.0.0下的數據拷貝到C:\OSG\data下;這幾個文件是OSG需要的。

環境變量設置

對系統變量設置如下:

OSG_FILE_PATH: C:\OSG\data

PATH:C:\OSG\bin;

可在命令行進行測試 osgversion, osglogo, osgviewer cow.osg。

新建OSG項目測試

  1. 在VS2010下新建WIN32控制檯程序

  2. 添加一個cpp

  3. 輸入以下代碼:

#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main( int argc, char **argv )
{
    osgViewer::Viewer viewer;
    viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
    return viewer.run();
}
  1. 右鍵項目,選擇“屬性”,選擇“VC++目錄”,
    在包含目錄添加:C:\OSG\include
    在庫目錄添加:C:\OSG\lib.
    這裏寫圖片描述
  2. 打開項目屬性的鏈接器,輸入裏,附加依賴項加上:
    OpenThreadsd.lib
    osgd.lib
    osgDBd.lib
    osgUtild.lib
    osgGAd.lib
    osgViewerd.lib
    osgTextd.lib
  3. 運行,效果如下圖:
    這裏寫圖片描述

待續……
讚賞碼

發佈了38 篇原創文章 · 獲贊 48 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章