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、如何设置环境变量
右击我的电脑—>属性 ,如下图所示:
%7B()4F~W%25EU8[]R9(N4M]4.jpg)
这是点其中的“高级” 选项卡如下图所示:

在完成上述步骤之后会出现下图:

这是在点击下方的“环境变量”选项如下图所示:

这是会出现下图:

2、设置具体环境变量值
我们设置的环境变量值是在系统变量中,

 (2)变量名: OSG_WINDOW
变量值:600 15 800 800     注意这个值可以固定就用这个无关紧要
完成上述步骤之后接下来的一步有些不同,这次我们不是新建而是编辑其中的选项内容,编辑的选项如下图所示:

 打开vs2010新建一个名为osgVR的控制台应用程序,之后进行设置,
②设置项目属性,添加包含文件目录和库文件目录
这里仅设置Debug版为例,Release版与此类似
需要注意的是:Debug版此时对于链接器输入lib文件名后缀比Release版多一个字母d,表示debug版,
右击弹出菜单选择“属性”

其中“配置(C)”项说明是对Debug还是Release版,根据需要选择

需要设置三项分别是包含文件目录include、lib库文件目录和链接器


附加依赖项为,其中并没有加入osgEarth相关
- OpenThreadsd.lib
 - osgd.lib
 - osgDBd.lib
 - osgFXd.lib
 - osgGAd.lib
 - osgManipulatord.lib
 - osgParticled.lib
 - osgShadowd.lib
 - osgSimd.lib
 - osgTerraind.lib
 - osgTextd.lib
 - osgUtild.lib
 - osgViewerd.lib
 

第五步、编写代码
- #include "stdafx.h"
 - #include <osgViewer/viewer>
 - #include <osg/Node>
 - #include <osg/geode>
 - #include <osg\group>
 - #include <osgDB/readfile>
 - #include <osgDB/writefile>
 - #include <osgUtil\optimizer>
 - int _tmain(int argc, _TCHAR* argv[])
 - {
 - osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer();
 - osg::ref_ptr<osg::Group> root=new osg::Group();
 - osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("mymap.earth");
 - root->addChild(node.get());
 - osgUtil::Optimizer optimizer;
 - optimizer.optimize(root.get());
 - viewer->setSceneData(root.get());
 - viewer->realize();
 - viewer->run();
 - return 0;
 - }
 
这个代码编写完之后还要编写mymap.earth文件,这里用NotePad++软件编辑,内容如下:
- <map name="MyMap" type="geocentric" version="2">
 - <image name="bluemarble" driver="gdal">
 - <url>world.tif</url>
 - </image>
 - </map>
 
编辑好之后把mymap.earth文件复制到你项目所在目录,深度和我的一样即可:E:\vs2010Progam Files\osgVR74\osgVR74,同时也要把world.tif这个tif文件放在和mymap.earth同一级目录下面。
完成这些时就可以编译执行,成果如下所示:
OSG入门即osgEarth建立一个地球的详细步骤的更多相关文章
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:建立一个EF数据模型
		
英文渣水平,大伙凑合着看吧…… 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第一篇: ...
 - 使用 MVC 5 的 EF6 Code First 入门 系列:建立一个EF数据模型
		
这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第一篇:建立一个E ...
 - 通过GitHub Pages建立个人站点(详细步骤)
		
1 Git简介 2 为什么使用Github Pages 3 创建Github Pages 3.1 安装git工具. 3.2 两种pages模式 3.3 创建步骤 3.4 常用命令 4 使用Jekyll ...
 - 在win7上建立本地FTP站点详细步骤
		
一.安装FTP组件点击:控制面板—>程序和功能—>打开或关闭Windows功能. 勾选“FTP服务器”及“FTP服务”“FTP扩展性”,点击“确定”,安装FTP组件. 勾选Web管理工具的 ...
 - Linux驱动之建立一个hello模块
		
目标:在开发板上执行insmod hello.ko能在控制台打印出hello init:接着执行rmmod会在控制台打印出hello exit 建立一个hello模块的步骤如下: 1.建立一个hell ...
 - Cesium入门-1-展示一个地球
		
Cesium 官网教程地址 https://cesium.com/docs/tutorials/getting-started//tutorials/getting-started/ 第一个程序代码: ...
 - 如何快速建立一个测试资源Web服务器及异步获取资源(Unity3D)
		
背景 1.最近看了几位专栏作家的文章,几篇提到了资源通过网络的动态获取.如何建立一个快速的测试环境,不免是一个问题,也就最简单的就是假设http服务器了,微软系的当然首选的IIS了,别的也能用阿帕奇或 ...
 - 使用NDK c++建立一个Android应用
		
使用NDK c++建立一个Android应用 一.工具 ADT(集成了eclipse,cdt,ndk plug-in) NDK (用它来编译c/c++程序) JDK (Java开发包) ANT(ecl ...
 - 【SSRS】入门篇(二) -- 建立数据源
		
原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...
 
随机推荐
- AgileEAS.NET SOA 中间件2013第四季度发布&部分功能开源预告
			
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
 - 微软改名部再次大显神威——ASP.NET 5改名ASP.NET Core 1.0
			
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:在计算机科学领域只有两件难事:缓存不可用和命名.--Phil Karlton 今天,S ...
 - Android屏幕适配全攻略(最权威的官方适配指导)  (转)
			
招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
 - 在Salesforce中创建Web Service供外部系统调用
			
在Salesforce中可以创建Web Service供外部系统调用,并且可以以SOAP或者REST方式向外提供调用接口,接下来的内容将详细讲述一下用SOAP的方式创建Web Service并且用As ...
 - LoadRunner Pacing设置(转)
			
转载的,备读 在 LoadRunner 的运行场景中,有一个不大起眼的设置,可能经常会被很多人忽略,它就是Pacing .具体设置方式为: Run-Time settings à General à ...
 - Linux环境下搭建Tomcat+mysql+jdk
			
Linux环境 1.下载并安装一个VMware workstation, 这个是虚拟机的平台(自行度娘下载~),虚拟机是在后面要在里面搭建Linux系统. 2.下载一个centos安装包,linux版 ...
 - hdu 5692 Snacks  线段树+dfs
			
Snacks Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
 - js从字符串中提取身份证号,连续18位数字
			
<!DOCTYPE html> <html> <head> <title>提取身份证号</title> <meta charset=& ...
 - iOS开发-由浅至深学习block
			
关于block 在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调.这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用 ...
 - 解决eclipse报PermGen space内存溢出异常的问题
			
异常问题如下所示: 1.点击Eclipse->Window->Preferences,如下所示: 2.点击Server->Runtime Environments,选择Apache ...