[原][osg][osgearth]我眼中的osgearth】的更多相关文章

看了一下,OE生成的可执行文件 除了osg库和第三方库 OE生产最多的dll就是 osgdb_osgearth_XXXX.dll了 这些都是为了通过osgDB机制加载earth的数据用的. 所以,我觉得osgearth主要的工作是在给osg添加大量的DB插件,也就是数据读取解析插件! 这样可以读取能画出“earth地球”功能的数据!这是OE的主要行为…
ReadResult result; osg::ref_ptr<osgDB::ReaderWriter> reader = osgDB::Registry::instance()->getReaderWriterForExtension("tif"); std::string name("D:\\gd.tif"); osgDB::ReaderWriter::Options* opt= NULL; osgDB::ReaderWriter::ReadR…
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-…
因为对于globalmap不熟悉,不怎么怎么修改高程,好像也没有这功能. 干脆自己手动修改了高程图tiff了 由于自身一直使用osg的 自己使用了osgDB直接读取tiff,修改后保存的. 同事小周一直研究gdal,她使用了gdal库直接改的,事实证明在专业gis处理上还是gdal更合适,现在把两种方式都总结一下: 第一种:通过osgDB修改tiff #include <osg/Image> #include <osgViewer/Viewer> #include <osgE…
首先粒子在地球上位置摆放很简单: //传入的经纬度坐标 osg::Vec3d geoPoint; const SpatialReference* latLong = SpatialReference::get("wgs84"); //偏移在地球上的点 GeoPoint point(latLong, geoPoint.x(), geoPoint.y(), geoPoint.z(), eMode); osg::Matrix matrixGood; point.createLocalToWo…
//osg::Matrix offsetmatrix 计算出子节点在父节点下的绝对坐标 //osg::Matrix offposition 用来计算当前节点相对父节点的位置 osg::Matrix offsetmatrix; offsetmatrix.setTrans(newposition3); offsetmatrix.preMultRotate(fatherquat); offsetmatrix.preMultRotate(itr->_quatOffsetRotate); osg::Mat…
1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏览. 4.osgearth_clamp:在一个区域加载生成5000个树木的三维模型展示. 5.osgearth_colorfilter:运行不起来…… 6.osgeatth_controls:有一个osg的图标,可以控制透明度与方向.还有一些文本矩形框之类的. 7.osgearth_demo:qt的…
bool EarthManipulator::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa) { bool handled = false; // first order of business: make sure the CSN is established. if ( !established() ) return false; // make sure the camera projecti…
关于物理引擎旋转的一些整理 参考文档 http://blog.wolfire.com/2010/03/Comparing-ODE-and-Bullet 介绍ODE和bullet的利弊 http://stackoverflow.com/questions/6408198/bullet-vs-newton-game-dynamics-vs-ode-physics-engines 讨论作者想要哪款物理引擎 https://www.ibm.com/developerworks/cn/opensource…
在osgEarthUtil 下 Ocean.cpp 的  traverse函数中: // we don't want the ocean participating in the N/F calculation: osg::CullSettings::ComputeNearFarMode mode = cv->getComputeNearFarMode(); cv->setComputeNearFarMode( osg::CullSettings::DO_NOT_COMPUTE_NEAR_FA…
倾斜摄影三维模型格式包含:*.osgb,*.dae等 文件格式包含:*.xml, *.desc, *.lfp等 例如:LocaSpace Viewer软件把osgb分块模型文件建立索引生成一个lfp文件,该lfp文件包含三维模型所在的经度.纬度.高度值,便于倾斜摄影三维模型在地球上进行定位. osgb节点内部关系: MatrixTransform (通过ProxyNode关联PageLod) || PageLod || PageLod || PageLod || PageLod ..... ||…
总体介绍: 倾斜摄影就是将拍好的数据,三角网格化再附上贴图. 目前流行处理软件: Street Factory.PIX4DMapper.smart3D 后期开发平台:超图 Skyline smart3D相关资源网址:http://www.acute3d.com/s3c-viewer/ 其他相关平台:LocaSpace Viewer osgb文件是保存倾斜摄影的基本数据格式 可以通过osgconv.exe直接转换成osgt格式查看内部构造 使用webgl的cesium需要将osgb格式转换成3dT…
参考源码:osg的官方例子:osganimationviewer 首先制作一个带骨骼动画的模型  demo.FBX 这里面我们做了两个骨骼动画:1.open   2.close 下面开始在osg中使用这个动画. 我们用几种代码从简到繁来演示加载播放等过程: 1.最简单的示例代码 #include <osgViewer/Viewer> #include <osgDB/ReadFile> #include <osgAnimation/BasicAnimationManager&g…
1.example_osganimate一)演示了路径动画的使用(AnimationPath.AnimationPathCallback),路径动画回调可以作用在Camera.CameraView.MatrixTransform.PositionAttitudeTransform等四种类型的节点上.二)演示了osgSim::OverlayNode的使用 2.example_osganimationeasemotion一)演示了osgAnimation::EaseMotion的使用,EaseMot…
//main.cpp #include "VREObliqueEditorQTWindow.h" #include <QtWidgets/QApplication> #include <QTextCodec> #include <QFileInfo> int main(int argc, char *argv[]) { QTextCodec *xcodec = QTextCodec::codecForLocale(); QString exeDir…
RangeMode PIXEL_SIZE_ON_SCREEN 首先我们看看原始数据的构成: 第12层:(第一层) 第23层:(最后一层) pagelod下面有N多的pagelod一层包裹一层 通过osgviewer遍历时,会根据距离的远近加载不同层级的“小瓦片” 可以看出其stateset和geode的数据量不小,而且通过pagelod不断加载卸载,是变化的.这会导致大批量渲染时,加载卡顿(目前只是一小片测试) 如上图圈出的部分会不断变化. 下面开始我们的数据合并测试: 可以明显的看到GPU爆了…
//geometry成员变量 PrimitiveSetList _primitives; osg::ref_ptr<Array> _vertexArray; //顶点 osg::ref_ptr<Array> _normalArray; //法线 osg::ref_ptr<Array> _colorArray; // osg::ref_ptr<Array> _secondaryColorArray; // osg::ref_ptr<Array> _…
查看osgconv.cpp main函数在533行 osg::ArgumentParser arguments(&argc,argv); //........一堆功能不管,先看一下文件读写 FileNameList fileNames; ;pos<arguments.argc();++pos) { if (!arguments.isOption(pos)) { fileNames.push_back(arguments[pos]); } } std::string fileNameOut(&…
osgb是二进制文件 osg是文本文件 osgb可以通过osgconv.exe转换成osg文件 osgb可以包含纹理文件(就是贴图) osg只能连接外部纹理文件(是的,你看到的cow.osg都是用的外部的reflect.rgb文件) osgb转成osg带贴图的参数: osgconv.exe --compressed Tile_+000_+.osgb Tile_+000_+.osg…
参考:http://blog.csdn.net/tmljs1988/article/details/7561887 图中上半边为opengl坐标系,下半边的osg坐标系: osg::Camare的默认朝姿态 位置在 0,0,0 姿态是:向下看(Z轴负向 0,0-1),头向前(Y轴正向 0,1,0)…
相关网址: 类似文章:http://blog.csdn.net/lh1162810317/article/details/17475297 osgBullet官网:http://osgbullet.vesuite.org/ 下载:https://github.com/mccdo/osgbullet osgWooks官网:http://osgworks.vesuite.org/ 下载:https://github.com/mccdo/osgworks bullet官网:http://bulletp…
参考:最长一帧 先介绍几个类: osgUtil::CullVisitor:“筛选访问器” 当我们使用它遍历场景图形的各个节点时, CullVisitor 将会对每一个遇到的节点执行场景筛选的工作,判断它是否会超出视截锥体范围, 过于渺小,或者被遮挡节点(OccluderNode)挡住,从而将无助益于场景浏览的物体筛选并 剔除,降低场景绘制的资源消耗 osg::RenderInfo:“渲染信息”管理器 负责保存和管理与场景绘制息息相关的几 个重要数据:当前场景的视景器,当前场景对应的所有摄像机,以…
参考:最长的一帧 先看下frame void ViewerBase::frame(double simulationTime) { advance(simulationTime);//记录仿真时间,帧数,收集弃用对象 eventTraversal();//处理键鼠响应,VPW矩阵,交互回调 updateTraversal();//更新节点访问器,分页数据,更新回调,相机操作,设置cullseting renderingTraversals();//遍历渲染 } eventTraversal()流…
由于受够了OE的漫游器,想搞个可以在全球飞行的漫游器,所以就做了一个: 请无视我的起名规则······ 类头文件:EarthWalkManipulator.h #pragma once //南水之源 20180101 #include <osgGA/CameraManipulator> #include <osgEarth/MapNode> #include <osgEarth/Viewpoint> #include <osgEarth/GeoData> c…
osgEarth支持中文过程详解 OSG和osgearth显示中文 一.知识储备   要想很好的理解和解决这个问题,首先要了解什么是多字节和宽字节.说实话我之前也知道这两个字节到底有什么区别,只是简单查了一下资料.这里引用了这篇博客,我感觉博主写的很有意思,通俗易懂,在这里先谢谢这位博主的奉献.http://blog.163.com/baijianguo00@126/blog/static/1375326052011018101334714/  二.问题提出 在大致了解了什么是多字节和款字节之后…
在osg中添加相机动画路径请参考:http://www.cnblogs.com/lyggqm/p/8075277.html 这里的代码是在osgearth中添加相机动画路径漫游器: #include <osg/Image> #include <osgGA/StateSetManipulator> #include <osgViewer/Viewer> #include <osgViewer/ViewerEventHandlers> #include <…
osgEarth基础入门 2015年3月21日 16:19 osgEarth是基于三维引擎osg开发的三维数字地球引擎库,在osg基础上实现了瓦片调度插件,可选的四叉树调度插件,更多的地理数据加载插件(包括GDAL,ogr,WMS,TMS,VPB,filesystem等),再结合一套地理投影转换插件,这样就能够实现高效处理加载调度地理数据在三维地球上的显示,实现三维虚拟地球. 想要实现一个简单的基于osgEarth的三维地球,有两种方式,这两种方式是互通的.一种基于XML标签的earth文件加载…
第一章   OSGEarth介绍 第二章   OSGEarth编译环境配置 OSGEarth的编译环境配置随着版本的不同.运行平台的不同,也有很大的差异.本章主要以Windows XP SP3(x86)为平台,Visual Studio 2010 为编译环境来介绍OSGEarth2.0的变异环境配置. 第一节  OSGEarth V2.0相关资源 OSGEarth的相关资源可以通过其官方网站(http://www.osgearth.org/wiki/Downloads)获取(所有资源文件均在关盘…
#include <osgViewer/Viewer>#include <osgViewer/ViewerEventHandlers>#include <osgGA/StateSetManipulator>#include <osgGA/TrackballManipulator>#include <osgEarth/Map>#include <osgEarth/MapNode>#include <osgEarthDrivers/…