
OSG/OSGEarth开发教程与实践
介绍OSG和OSHEarth开发的相关方法。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
cchangcs
Make something different!
毕业于武汉大学软件工程专业,现就职于某厂。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OSG/OSGEarth一万一千字学习实践完整总结(强烈推荐!!!)
目录01前言02编译和配置编译OSG和OSGEarth下载路径配置OSG和OsgEarth的release版本程序03搭建MFC桌面端程序1、新建MFC应用程序DigitalEarth,选择单个文档。2、实现osgEarth相关功能。3、将osgEarth程序运行结果在MFC文档视图中显示。四、运行程序,即可看到如下结果:04基本功能实现Earth文件加载地理空间数据加载影像数据加载DEM数据Earth文件加载地理空间数据显示与隐藏...原创 2020-08-19 19:22:41 · 4021 阅读 · 3 评论 -
osgEarth教程(一)——编译配置(osgEarth+VS2015+win10)
版本:OSG3.4.0 OSGEarth2.8 VS2015 64位 win10已编译版本,需要的可下载后配置环境变量:地址:https://download.csdn.net/download/github_39611196/10932545一、编译OSG1、安装包准备(1)OSG:https://github.com/o...原创 2019-01-18 02:17:05 · 31263 阅读 · 31 评论 -
osgEarth教程(二)——VS配置osgEarth及第一个小例子
本文主要介绍通过VS配置编译好的osgEarth,并完成第一个小例子。一、VS配置osgEarth打开VS,新建win32控制台项目,选择空项目。(1)配置包含目录在工程上右键->属性->VC++目录包含目录:E:\osg+osgearth_64\include(2)配置库文件在工程上右键->属性->VC++目录库目录:E:\osg+osge...原创 2019-01-20 16:14:49 · 4996 阅读 · 2 评论 -
osgEarth教程(三)——搭建MFC桌面端程序框架
本文主要介绍基于MFC创建osgEarth桌面端程序。1、新建MFC应用程序DigitalEarth,选择单个文档。2、实现osgEarth相关功能。2.1、创建OSGObject.h文件,输入如下代码:#pragma once#include <osgViewer/Viewer>#include <osgDB/ReadFile>#includ...原创 2019-02-19 14:09:51 · 3972 阅读 · 5 评论 -
OSGEarth+MFC运行后黑屏
本文主要介绍如何解决在MFC窗口程序中实现OSGEarth后黑屏。原因:出现该问题的原因是运行后显示出来的结果超出了MFC程序视窗外。解决方案:将camera->setViewport(new osg::Viewport(traits->x, traits->y, traits->width, traits->height));修改为c...原创 2019-03-05 10:20:11 · 1395 阅读 · 1 评论 -
3dmax文件格式转换——.max 转换为 .flt(解决转换后.flt没有纹理贴图的问题)
本文主要介绍如何在3dmax中将.max格式文件转换为.flt格式文件,并解决转换后的文件没有纹理贴图的问题。在3dmax中,将.max文件转换为.flt格式,只需导出选择.flt格式即可,但是导出的文件在osgEarth中加载后,缺少纹理和贴图。下面是解决方案:1、选中加载的模型,然后点击 渲染-> 渲染到纹理2、将 渲染到纹理 子窗口往下拉,点击 添加 按钮,添加 ...原创 2019-03-29 15:46:02 · 5631 阅读 · 0 评论 -
osgEarth C++转换为ActiveX控件
本文主要介绍osgEarth C++程序如何转换为ActiveX控件。1、创建win32dll应用程序,并添加osgEarth代码。2、配置包含路径、库路径和链接库:D:\OSG_PATH\Osg3.4.0_SDK\lib;D:\OSG_PATH\OsgEarth2.8_SDK\lib;D:\OSG_PATH\Osg3.4.0_SDK\include;D:\OSG_PATH\OsgEa...原创 2019-04-21 22:46:40 · 640 阅读 · 0 评论 -
OSGEarth添加文字
目录一、类型转换二、编码修改三、文字添加四、完整代码本文主要介绍在OSGEarth中实现在指定经纬度添加文字。一、类型转换下列代码用于是实现将String类型的字符串转换为WString类型,才可被相应函数接收作为输入。std::wstring String2WString(const std::string& s){ std::string str...原创 2019-12-13 15:03:19 · 1646 阅读 · 0 评论 -
OSGEarth隐藏显示tif图层
目录一、.earth文件中加载tif文件二、C++代码实现实时显示与隐藏显示图层隐藏图层在OSGEarth中,为了实现对tif图层的智能化管理,有时需要实现tif图层的实时显示与隐藏。一、.earth文件中加载tif文件在.earth文件中加入下列代码即可实现对example.tif文件的加载。注:注意设置name,才能通过name实现对tif图层的显示与隐藏。...原创 2019-12-13 14:50:21 · 1712 阅读 · 1 评论 -
OSGEarth模型点击事件
目录一、实现模型点击事件二、添加并设置模型名称三、绑定模型点击事件使用OSGEarth进行开发时,有时需要实现点击添加的三维模型,触发某个事件。一、实现模型点击事件下列代码实现了点击模型时,当点击的模型名称与监听的模型名称一致时,就触发某个事件。#include "StdAfx.h"#include "PickNodeHandler.h"CPickHandle...原创 2019-12-13 14:42:28 · 1878 阅读 · 3 评论 -
OSGEarth加载的三维模型缺乏立体感或透明
目录问题描述解决方案问题描述在OSGEarth中加载三维模型时,出现了模型过亮,缺乏立体感甚至透明的问题。解决方案将camera的光照关闭,即可解决上述问题,即加入下列代码:mViewer->getCamera()->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OF...原创 2019-12-12 17:14:58 · 1987 阅读 · 0 评论 -
osgEarth根据DEM地形的高程设置不同的颜色
本文主要介绍在osgEarth中根据DEM地形的高程设置不同的颜色。将下面两个url中的路径替换为需要渲染的高程数据即可。<map name="readymap.org" type="geocentric"> <heightfield name="GuangDongHeightfiled" driver="gdal"> <url>./dem/GD_2...原创 2019-06-18 12:30:58 · 1673 阅读 · 1 评论 -
osgEarth基于callback更新绘制的图形(附带:osgEarth绘制多边形方法)
本文主要介绍在osgEarth中基于callback实现实时更新绘制的图形。绘制图形和调用callback的代码:void drawLakes(){ //初始化绘图参数 const osgEarth::SpatialReference* geoSRS = mapNode->getMapSRS()->getGeographicSRS(); //湖面 osgEarth::Sy...原创 2019-06-10 20:53:17 · 2953 阅读 · 1 评论 -
osgEarth解决中文乱码问题
本文主要介绍解决在osgEarth中的中文乱码问题。主要有两个需要注意的点:1、将字符串从Unicode转换为UTF-8编码:void unicodeToUTF8(const wstring &src, string& result){ int n = WideCharToMultiByte(CP_UTF8, 0, src.c_str(), -1, 0, 0, 0, 0)...原创 2019-05-31 11:19:33 · 1580 阅读 · 0 评论 -
osg读取fbx模型并播放动画(附代码和模型)
本文主要介绍通过osg读取fbx 3d模型,并播放模型所带的动画。所使用到的类为AnimationManagerBase。模型下载地址:原创 2019-05-16 17:01:30 · 2866 阅读 · 2 评论 -
OSGEarth基于经纬度获取高程数据
在添加了DEM数据后,有时需要基于经纬度查询某一点的高程信息,本文主要介绍了如何实现基于经纬度查询高程数据的实现过程。首先加载头文件:#include <osgEarth/MapNode>#include <osgEarth/ElevationQuery>#include <osgDB/ReadFile>创建需要使用到的变量:osg::ref_pt...原创 2019-05-07 15:55:04 · 4561 阅读 · 1 评论 -
OsgEarth加载DEM(数字高程模型)
本文主要介绍在OsgEarth中添加DEM,即数字高程模型。写在前面,由于我也是OsgEarth的小白一枚,写这篇博客只是为了个人记录所用,大家看了觉得没有用勿喷,有错误可在评论指出。添加方法:在.earth文件中添加下列代码,其中name可自己制定,url标签中添加dem模型所在的目录,可以写绝对路径或相对路径:<heightfield name="xinjiang" driver...原创 2019-04-24 18:14:13 · 5487 阅读 · 1 评论 -
已解决:osg或者osgEarth 加载模型后只能从前后左右看到
在使用osg或者osgEarth加载3d模型时,加载后的模型只能从前后左右四个方向看到,从上方无法看到模型。解决方法:出现上述问题的原因是深度测试没有打开,只需在camera中将深度测试打开即可。打开深度测试的代码:camera->getOrCreateStateSet()->setMode(GL_DEPTH_TEST, osg::StateAttribute::ON...原创 2019-04-15 13:16:11 · 1708 阅读 · 0 评论 -
OSGEarth绘制随模型位置变化而动态移动的线段
目录一、编写Callback二、初始化并绑定Callback本文主要介绍在OSGEarth中绘制随模型位置变化而动态移动的线段,即两个三维模型通过线段进行连接,在模型移动的过程中,连接的线段跟着模型做相应的位移。一、编写Callback#pragma onceclass UpdateLink :public osg::NodeCallback{public: osg:...原创 2019-12-13 15:17:25 · 3941 阅读 · 1 评论 -
OSGEarth对绘制的直线进行显示与隐藏
目录一、声明全局变量二、实现直线的显示三、实现直线的隐藏本文主要介绍如何通过复选框等事件实现OSGEarth中所绘制直线的显示与隐藏。一、声明全局变量将如下代码放在类属性中,或声明为全局变量。osgEarth::Annotation::FeatureNode* m_pStippleFeatureNode;二、实现直线的显示通过下面的代码进行直线的绘制,并将绘制...原创 2019-12-14 15:58:47 · 2252 阅读 · 4 评论