OSG入門即osgEarth建立一個地球的詳細步驟


OSG入門即osgEarth建立一個地球的詳細步驟

轉:http://blog.csdn.net/xiaol_deng/article/details/9246291

 最近在學習有關osg的知識,剛開始一頭霧水,幸好在老師的指導下才茅塞頓開,同時又結合網上的多個資料總結

一下作為一個初學者入門的經驗。希望廣大初學者少走彎路!

  開始osg編程之前要做osg的編譯准備,這里作為初學者最好選擇簡單的方法先熟悉為主。我們先下載一個編譯好的VS2010+OSGEarth,注意大家看到這里可能會有許多不解,我當時也是這么認為,待我們一步一步地來實現。

第一步、下載編譯包

OSG3.1.4和osgEarth2.3 VC10編譯包
下載地址:
http://pan.baidu.com/share/link?shareid=107009&uk=2801833827

第二步、建立目錄

 在你的硬盤里建立一個目錄,我就在E盤建立一個osgearth的目錄,並把下載的壓縮包復制到E:\osgearth\

中並且解壓,解壓后發現E:\osgearth\OSG里的文件如下圖所示:

第三步、設置環境變量

  做為一個初學者我在這一步里遇到了很多麻煩,為了不讓大家重蹈覆轍我們這里很詳細的介紹。

1、如何設置環境變量

右擊我的電腦—>屬性 ,如下圖所示:

這是點其中的“高級” 選項卡如下圖所示:

 

在完成上述步驟之后會出現下圖:

這是在點擊下方的“環境變量”選項如下圖所示:

這是會出現下圖:

2、設置具體環境變量值

我們設置的環境變量值是在系統變量中,

這時我要點擊“新建”創建相應的選項,之后出現:
 
變量名:OSG_ROOT
變量值:E:\osgearth\OSG
這里的變量值是根據你的創建的目錄來定,之后確定就好。新建玩着一項后,我們還要用同樣的辦法新建幾個選項如下:
(1)    變量名:OSG_FILE_PATH
             變量值:E:\osgearth\OSG\data     注意這里也是根據具體情況定的

(2)變量名: OSG_WINDOW 

         變量值:600 15 800 800     注意這個值可以固定就用這個無關緊要
完成上述步驟之后接下來的一步有些不同,這次我們不是新建而是編輯其中的選項內容,編輯的選項如下圖所示:

從圖中可知就是編輯Path選項,選中之后點擊下面編輯鍵,出現下圖:
 
把變量值改成E:\osgearth\OSG\bin即可,注意這里我的是改好的,你們的剛開始可能不一樣不要緊的。這些改好之后就點確定就行直到退出環境變量設置。
第四步、設置文件目錄屬性 


打開vs2010新建一個名為osgVR的控制台應用程序,之后進行設置,

設置項目屬性,添加包含文件目錄和庫文件目錄

這里僅設置Debug版為例,Release版與此類似

需要注意的是:Debug版此時對於鏈接器輸入lib文件名后綴比Release版多一個字母d,表示debug版,

右擊彈出菜單選擇“屬性”

其中“配置(C)”項說明是對Debug還是Release版,根據需要選擇

需要設置三項分別是包含文件目錄include、lib庫文件目錄和鏈接器

附加依賴項為,其中並沒有加入osgEarth相關

[plain]  view plain copy
 
  1. OpenThreadsd.lib    
  2. osgd.lib    
  3. osgDBd.lib    
  4. osgFXd.lib    
  5. osgGAd.lib    
  6. osgManipulatord.lib    
  7. osgParticled.lib    
  8. osgShadowd.lib    
  9. osgSimd.lib    
  10. osgTerraind.lib    
  11. osgTextd.lib    
  12. osgUtild.lib    
  13. osgViewerd.lib   

 

第五步、編寫代碼

print?

  1. #include "stdafx.h"   
  2. #include <osgViewer/viewer>   
  3. #include <osg/Node>   
  4. #include <osg/geode>   
  5. #include <osg\group>   
  6. #include <osgDB/readfile>   
  7. #include <osgDB/writefile>   
  8. #include <osgUtil\optimizer>   
  9.   
  10.     int _tmain(int argc, _TCHAR* argv[])  
  11.     {  
  12.         osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer();  
  13.         osg::ref_ptr<osg::Group> root=new osg::Group();  
  14.         osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("mymap.earth");  
  15.   
  16.   
  17.         root->addChild(node.get());  
  18.         osgUtil::Optimizer optimizer;  
  19.         optimizer.optimize(root.get());  
  20.         viewer->setSceneData(root.get());  
  21.         viewer->realize();  
  22.         viewer->run();  
  23.         return 0;  
  24.     }  

這個代碼編寫完之后還要編寫mymap.earth文件,這里用NotePad++軟件編輯,內容如下:

  1. <map name="MyMap" type="geocentric" version="2">  
  2. <image name="bluemarble" driver="gdal">  
  3. <url>world.tif</url>  
  4. </image>  
  5. </map

編輯好之后把mymap.earth文件復制到你項目所在目錄,深度和我的一樣即可:E:\vs2010Progam Files\osgVR74\osgVR74,同時也要把world.tif這個tif文件放在和mymap.earth同一級目錄下面。

完成這些時就可以編譯執行,成果如下所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM