首页 > 代码库 > OSG入门即osgEarth建立一个地球的详细步骤

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 plaincopy
 
  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同一级目录下面。

完成这些时就可以编译执行,成果如下所示:

 

OSG入门即osgEarth建立一个地球的详细步骤