参考:http://blog.csdn.net/tmljs1988/article/details/7561887 图中上半边为opengl坐标系,下半边的osg坐标系: osg::Camare的默认朝姿态 位置在 0,0,0 姿态是:向下看(Z轴负向 0,0-1),头向前(Y轴正向 0,1,0)…
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…
参考源码:osg的官方例子:osganimationviewer 首先制作一个带骨骼动画的模型  demo.FBX 这里面我们做了两个骨骼动画:1.open   2.close 下面开始在osg中使用这个动画. 我们用几种代码从简到繁来演示加载播放等过程: 1.最简单的示例代码 #include <osgViewer/Viewer> #include <osgDB/ReadFile> #include <osgAnimation/BasicAnimationManager&g…
//main.cpp #include "VREObliqueEditorQTWindow.h" #include <QtWidgets/QApplication> #include <QTextCodec> #include <QFileInfo> int main(int argc, char *argv[]) { QTextCodec *xcodec = QTextCodec::codecForLocale(); QString exeDir…
查看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(&…
相机矩阵变化基础:http://blog.csdn.net/popy007/article/details/5120158 osg漫游器原理:http://blog.csdn.net/csxiaoshui/article/details/51295591 osgGA::CameraManpulator原理:http://blog.csdn.net/csxiaoshui/article/details/51303086 简单的说osgGA::CameraManipulator就是用来修改相机节点姿…
因为对于globalmap不熟悉,不怎么怎么修改高程,好像也没有这功能. 干脆自己手动修改了高程图tiff了 由于自身一直使用osg的 自己使用了osgDB直接读取tiff,修改后保存的. 同事小周一直研究gdal,她使用了gdal库直接改的,事实证明在专业gis处理上还是gdal更合适,现在把两种方式都总结一下: 第一种:通过osgDB修改tiff #include <osg/Image> #include <osgViewer/Viewer> #include <osgE…
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…
转自:http://blog.csdn.net/timothyfly/article/details/7826139 osg格式文件中如何处理多个节点共享一个子节点 下面一段程序中,共有三个Group类型根节点:root,grp1和grp2:两个Geode类型节点:geode1和geode2.他们之间的从属关系是:grp1,grp2和geode2是root的孩子,geode1和geode2是grp1的孩子,geode2是grp2的孩子. .osg格式的文件存储像geode2这个的节点时,采用'U…
//QT += core gui opengl //LIBS += -losgViewer -losgDB -losgUtil -losg -lOpenThreads -losgGA -losgQt #include <QtGui/QApplication> #include <osg/ArgumentParser> #include <osgViewer/Viewer> #include <osgViewer/CompositeViewer> #inclu…
DatabasePager加载数据的过程: 多线程 使用DatabasePager加载数据的流程: 左侧的图框表示数据的检索和输入, 中间的白色框表示用于数据存储的内存空间,而右边的图框表示存储数据的输出.此外,蓝色图框表示可以在DatabaseThread线程中完成的工作, 而橙色图框表示由线程之外的函数完成的工作. void DatabasePager::DatabaseThread::run() { OSG_INFO<<_name<<": DatabasePager…
同事由于新加了一个屏幕,本来用 osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer(); viewer->setSceneData(groupRoot.get()); return viewer->run(); 就直接可以跑全屏的程序了,然是现在会在两块屏出现全屏,他很苦恼. 于是他: osgViewer::View* createView(int screenNum) { unsigned , height…
1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏览. 4.osgearth_clamp:在一个区域加载生成5000个树木的三维模型展示. 5.osgearth_colorfilter:运行不起来…… 6.osgeatth_controls:有一个osg的图标,可以控制透明度与方向.还有一些文本矩形框之类的. 7.osgearth_demo:qt的…
1.example_osganimate一)演示了路径动画的使用(AnimationPath.AnimationPathCallback),路径动画回调可以作用在Camera.CameraView.MatrixTransform.PositionAttitudeTransform等四种类型的节点上.二)演示了osgSim::OverlayNode的使用 2.example_osganimationeasemotion一)演示了osgAnimation::EaseMotion的使用,EaseMot…
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> _…
osgb是二进制文件 osg是文本文件 osgb可以通过osgconv.exe转换成osg文件 osgb可以包含纹理文件(就是贴图) osg只能连接外部纹理文件(是的,你看到的cow.osg都是用的外部的reflect.rgb文件) osgb转成osg带贴图的参数: osgconv.exe --compressed Tile_+000_+.osgb Tile_+000_+.osg…
首先粒子在地球上位置摆放很简单: //传入的经纬度坐标 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…
相关网址: 类似文章: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…
关于物理引擎旋转的一些整理 参考文档 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…
参考:最长一帧 先介绍几个类: osgUtil::CullVisitor:“筛选访问器” 当我们使用它遍历场景图形的各个节点时, CullVisitor 将会对每一个遇到的节点执行场景筛选的工作,判断它是否会超出视截锥体范围, 过于渺小,或者被遮挡节点(OccluderNode)挡住,从而将无助益于场景浏览的物体筛选并 剔除,降低场景绘制的资源消耗 osg::RenderInfo:“渲染信息”管理器 负责保存和管理与场景绘制息息相关的几 个重要数据:当前场景的视景器,当前场景对应的所有摄像机,以…
参考:最长的一帧 先看下frame void ViewerBase::frame(double simulationTime) { advance(simulationTime);//记录仿真时间,帧数,收集弃用对象 eventTraversal();//处理键鼠响应,VPW矩阵,交互回调 updateTraversal();//更新节点访问器,分页数据,更新回调,相机操作,设置cullseting renderingTraversals();//遍历渲染 } eventTraversal()流…
看了一下,OE生成的可执行文件 除了osg库和第三方库 OE生产最多的dll就是 osgdb_osgearth_XXXX.dll了 这些都是为了通过osgDB机制加载earth的数据用的. 所以,我觉得osgearth主要的工作是在给osg添加大量的DB插件,也就是数据读取解析插件! 这样可以读取能画出“earth地球”功能的数据!这是OE的主要行为…
在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…
作者:3wwang 原文接连:http://www.3wwang.cn/html/article_104.html 前序 探究osg中的程序设计模式---开篇 探究osg中的程序设计模式---创造性模式 探究osg中的程序设计模式---创造型模式---Factory(工厂)模式 探究osg中的程序设计模式---创造型模式---AbstractFactory(抽象工厂)模式 探究osg中的程序设计模式---创造型模式---Singleton(单例)模式 探究osg中的程序设计模式---创造型模式-…
查看osg坐标系,camare默认姿态:http://www.cnblogs.com/lyggqm/p/8073688.html 首先搞清楚osg的坐标系以及osg::camare的默认姿态 下代码面实现了,在场景里放一只牛.相机使用动画漫游器 在动画中添加三个方向来观察牛.具体三方向姿态请参考代码 #include <iostream> #include <osg/MatrixTransform> #include <osgViewer/Viewer> #includ…