OSG+VS2010+Win7 64位環境搭建

前言:

OpenSceneGraph(簡稱OSG)使用OpenGL技術開發,是一套基于C++平臺的應用程序接口(API),它讓程序員能夠更加快速、便捷地創建高性能、跨平臺的交互式圖形程序。它作為中間件(middleware)為應用軟件提供了各種高級渲染特性,IO,以及空間結構組織函數;而更低層次的OpenGL 硬件抽象層(HAL)實現了底層硬件顯示的驅動

OpenSceneGraph是一個開源的三維引擎,被廣泛的應用在可視化仿真、游戲、虛擬現實、科學計算、三維重建、地理信息、太空探索、石油礦產等領域。OSG采用標準C++和OpenGL編寫而成,可運行在所有的Windows平臺、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD 操作系統。OSG在各個行業均有著豐富的擴展,能夠與使用OpenGL書寫的引擎無縫的結合,使用國際上最先進的圖形渲染技術,讓每個用戶都能站在巨人的肩上。

一.相關文件下載

1.1 Osg源碼

OpenSceneGraph的3.0.0.zip(現在最新版已經到3.4了)

下載鏈接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip

1.2 Osg第三方庫

3rdParty_VC10_x86_x64.zip

下載鏈接:http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip

1.3 OSG官方示例數據包

OpenSceneGraph-Data-3.0.0.zip

下載鏈接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip

1.4 安裝源碼工具(雖然寫的x86的,但是64位系統也可以用的)

1.4.1 之前版本下載連接: cmake-2.8.4-win32-x86.exe

1.4.2 最新版本下載連接: cmake-3.4.1-win32-x86.exe

二、編譯環境創建

為了編譯的順利進行,將下載的文件組織如下,在E盤建立一個OSG的文件夾,然后其他文件如下放置:

E:\OSG\OpenSceneGraph,源碼解壓后放于此;

E:\OSG\3rdParty,第三方依賴庫解壓后放于此;

注意:這個里面的第三方庫一般包含x64和x86的兩個版本的,這里要根據你自己的電腦需要選擇一個然后把里面的文件復制到3rdParty文件夾中。

由于本人的電腦是64位的系統,所以我選擇的留下了的是“x86”。

之所以選擇x86,也就是32位是因為64位的隱患很大,很多庫沒有64位的,

而我也自己親身實踐過,在后面的VS批生成的時候導致ALL_INSTALL出現了2個失敗,在后面的直接4個全失敗。所以這里我建議選擇使用32位的;

E:\OSG\data,數據包解壓后放于此。

三.編譯OSG源碼

3.1 首先安裝CMake,之后打開CMake -gui.exe

這里要補充說下,因為有些教程里面說到,在創建” E:\OSG\OpenSceneGraph”文件夾之后,

最好在里面新建兩個文件夾,一個叫”build”;一個叫”bin”;

3.2 將源碼OpenSceneGraph文件夾里頭的CmakeLists.txt,拖到Cmake界面,如圖:


CMake

  技術分享

然后將“where to build the binaries”設置為,剛剛新建的“build”文件夾,具體如上圖。

3.3 點擊Configure,選擇Visual Studio 10,如下圖:


Configure

   技術分享

這里需要說的是,因為我上面第三方依賴庫我保留的是x86,所以我這里也就自然選擇VS10就可以了;

另外還有一個是VS10 Win64 的那就是要對應之前的第三方依賴庫的選擇了;

3.4 點擊Finish之后,等一下,然后進行相關設置:

ACTUAL_3RDPARTY_DIR:E:/OSG/3rdParty

BUILD_OSG_EXAMPLES :勾上

CMAKE_INSTALL_PREFIX:E:/OSG/OpenSceneGraph/

如下圖:


相關設置

  技術分享

3.5 點擊Configure后,等一會;

然后將Advanced打勾,將BUILD_MFC_ EXAMPLE設置為on,進行最后一次的Configure配置,點擊Configure:

如果這過程中下面的這個區域:


區域

  技術分享

出現了紅色的亂碼,可能是跟你的VS10的一些默認項目文件存放的路徑有關,之所以會亂碼,是因為可能上面說到的路徑有中文。

所以,建議不要去修改VS10的一些默認的存放的路徑,避免不必要的錯誤。

當然隨著這步勾選上BUILD_MFC_ EXAMPLE,正常的情況應該是中間區域的紅色會全部消失,但是下面的區域你去查看會發現任然有些紅色的語句警告,這無關緊要;

繼續進行下一步。

3.6 點擊Generate,自此建構完成。

四.編譯階段

4.1 用VS2010打開OpenSceneGraph.sln(此文件在E:\OSG\OpenSceneGrap\build下);

找到菜單:生成-批生成,對All_BUILD進行生成,選擇(Debug和Release兩個版本),這段編譯時間是很長的,估計2個小時左右,主要看電腦,這的確要很久;

建議大家要耐心等待,代碼好像要走到13000左右差不多就好了,這段時間可以打局LOL或者看看視頻之類的,玩笑了。


生成方案

4.2 第1步完成后,再對INSTALL也進行相應生成編譯,這段時間很快的:

INSTALL生成編譯

五.數據轉移

在C盤新建OSG文件夾(這個可以放在你想放的地方,不僅僅限于C盤,因為畢竟不是所有人都是把C盤設置的很大,而且不免有些人的C盤是容量不大的SSD)

將E:\OSG\OpenSceneGraph下的bin,include,lib文件夾,拷貝到C:\OSG下;

將E:\OSG\data下的數據,拷貝到C:\OSG\data下;

這幾個文件是OSG需要的。

六.環境變量設置

6.1右擊“計算機”,然后“屬性”,在計算機屬性窗口的左邊有個高級系統設置,如下圖:

系統屬性變量

點擊之后,高級--環境變量,對系統變量設置如下:

新建一個變量:OSG_FILE_PATH:C:\OSG\data

追加變量內容:PATH:C:\OSG\bin;

6.2 在命令行(CMD)進行測試:

osgversion

osgviewer cow.osg

osglogo

注意:測試osglogo時,出現如下錯誤:

‘osglogo‘ 不是內部或外部命令,也不是可運行的程序
    或批處理文件。

這個原因我搜索了一下osglogo.exe,發現它存在于兩個地方:

E:\OSG\OpenSceneGraph\share\OpenSceneGraph\bin
    E:\OSG\OpenSceneGraph\build\bin

實際上到這一步,已經編譯成功,如果覺得非得調出osglogo的話,就把osglogo.exe復制到C:\OSG\bin下面,就可以了。

七.新建OSG項目測試

7.1 在VS2010下,找到C++,新建WIN32控制臺程序;

7.2 添加一個cpp;

7.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();
 }

7.4 右鍵項目,選擇“屬性”,選擇“VC++目錄”,在包含目錄添加:C:\OSG\include,在庫目錄添加:C:\OSG\lib

VC++目錄添加依賴庫lib

7.5 打開項目屬性的鏈接器,在輸入厘米那,附加依賴項加上:

OpenThreadsd.lib

osgd.lib

osgDBd.lib

osgUtild.lib

osgGAd.lib

osgViewerd.lib

osgTextd.lib

7.6 運行,效果如下圖:

效果圖

Congratulations,下面你就可以享受OSG的世界了!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,786評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,656評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,697評論 0 379
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,098評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,855評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,254評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,322評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,473評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,014評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,833評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,016評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,568評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,273評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,680評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,946評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,730評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,006評論 2 374

推薦閱讀更多精彩內容