osg 笔记一 (转)】的更多相关文章

场景图形采用一种自顶向下的,分层的树状数据结构来组织空间数据集,以提高渲染的效率 场景图形树结构的顶部是一个根节点,从根节点向下延伸,各个组节点中均包含了几何信息和用于控制其外观的渲染状态信息.根节点和各个组节点都可以有零个(实际上是没有执行任何操作)或多个子成员.在场景图形的最底部,各个叶节点包含了构成场景中物体的实际几何信息. Osg程序使用组节点来组织和排列场景中的几何体. 场景图形通常包含了多种类型的节点以执行各种各样的用户功能,例如开关节点可以设置其子节点可用或不可用,细节层次节点(L…
虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半的光阴,这段时间,不仅是知识.阅历.成长获得最大的一段,也是人生的一大转折点.在这期间,得以继续深造学习自己的专业,虽然踏入这行的时候,也是调剂来的,但是我用这3年的时间,恶补自己7年的不足:2015年,发生了三件大事,我毕业了,我工作了,我有女票了(三件事的重要程度递增):吃得苦中苦,方位人上人,…
osg::Geode (geometry node) osg::Geode类表示场景中的渲染几何叶节点,它包含了渲染用的几何信息,没有子节点. 要绘制的几何数据保存在osg::Geode管理的一组osg::Drawable对象中.osg::Drawable是一个接口,它有很多实现类渲染模型,图像,文本到OpenGL管线.这些可渲染统称为drawables. osg::Geode提供了几个方法来绑定和解绑drawables: addDrawable() removeDrawable(), remo…
ArgumentParser主要负责命令行参数的读取 #include <osgDB/ReadFile> #include <osgViewer/Viewer> int main(int argc, char **argv) { //命令行参数读取 osg::ArgumentParser arguments(&argc, argv); std::string filename; arguments.read("--model", filename); o…
OSG的智能指针,osg::ref_ptr<> osg::Referenced类管理引用计数内存块,osg::ref_ptr需要使用以它为基类的其它类作为模板参数. osg::ref_ptr<>类模板重新实现了一系列C++重载符和成员函数,主要有: T* get(): 返回管理的指针, { return _ptr; } T& operator*(): 返回间接引用,{ return *_ptr; } T* operator->():  { return _ptr; }…
OpenSceneGraph是一款高性能的3D图形开发库.广泛应用在可视化仿真.游戏.虚拟现实.高端技术研发以及建模等领域.使用标准的C++和OpenGL编写而成,可以运行在Windows系列.OSX.GNU/Linux.IRIX.Solaris.HP-Ux.AIX以及FreeBSD操作系统.官网 - http://www.openscenegraph.org/ 这里采用的是手动编译最新版的OSG. 环境:Ubuntu12.04 gcc4.6 编译步骤如下; 1.  下载源码: 从http://…
#pragma comment(lib, "osg.lib") #pragma comment(lib, "osgDB.lib") #pragma comment(lib, "osgViewer.lib") #include  "osgViewer/Viewer" #include  "osgDB/ReadFile" #include  "osg/Node" #include "…
例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4)); 来指定要利用这些数据生成一个怎么样的形状. 该行代码中,使用DrawArrays类向Geometry类送入了新几何体的信息,即,该几何体是一个QUADS,它的顶点坐标从索引数组中读入,从第1个索引值开始,共读入4个索引值,组成一个四边形图形. 几何体的形状参数除了QUADS之外,还有数种方式,以用于不同的用户需求,列表如下: POINTS 绘制点…
原文:https://blog.csdn.net/u011310341/article/details/51179948 #include "stdafx.h" #include<osgViewer/Viewer> #include<osgDB/ReadFile> int main(int argc, char **argv){ osgViewer::Viewer viewer;//定义一个视景器 osgDB::Options *a = new osgDB::O…
OpenSceneGraph 笔记--如何导出三角形数据 转载:http://blog.csdn.net/pizi0475/article/details/5384389 在OpenSceneGraph开发中,为了方便会经常使用到一些不是三角形片的数据,比如四边形等数据.例如画一个管子用四边形带比用三角形片好计算得多.比如现在我们要画一个由两个平面组成的面,我可以这样做:     osg::Geode* geode=new osg::Geode;    osg::Geometry* polyGe…
OSG中找到特定节点的方法 转自:http://38288890.blog.163.com/blog/static/19612845320072721549504/ 为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类,NPS的教程 [download id="14"]阐述了这个问题.下面是我写的一个类,找到指定名字.指定类型的节点:class findGeoNamedNode:public osg::NodeVisitor{public:fi…
osg中遇到的问题 今天写程序的时候, 需要把键盘和鼠标消息转发出来, 就直接写了接口用signal丢出来了. 程序写的很多, 测试的时候却崩溃了.... 在场景中拖拽鼠标左键的时候, 会发现在扔出鼠标左键的按下和弹起消息后, 还会再弹出几个消息: 多出来的几个消息查了下, 65508是右ctrl键, 有时还会弹出65507(左ctrl键)!!! 我勒个去, osg不会自动干这事吧, 以前没发现啊! 屁话不多说, 开始查吧.... 各种翻源码, 就是没看到哪里添加键盘消息了, 实在没辙到群里问了…
osg中的视点控制 osg的视点控制基类是CameraManipulator, 它是一个虚基类, 有用的方法都跟home有关. 在这个类里面有三个重要的成员变量: osg::Vec3d _homeEye osg::Vec3d _homeCenter osg::Vec3d _homeUp   这三个变量定义了初始相机的位置.   我们最常用的TrackballManipulator类其实没有定义什么, 它的主要方法都在基类OrbitManipulator里. 这个类里重要的函数是setTransf…
最近在一个项目中需要动态的添加和删除EventHandler,添加的时候很顺利,使用view->addEventHandler()函数就可以了. 不过在删除的时候,出现点麻烦.   直接调用view->removeEventHandler()函数,会导致view在调用frame函数时,崩在这个位置: void CompositeViewer::eventTraversal(){    ...        for(ViewEventsMap::iterator veitr = viewEven…
VirtualPlanetBuilder编译方法 转自:http://www.boyunjian.com/do/article/snapshot.do?uid=7327932418831703800 一.下载安装TortoiseSVN客户端 VirtualPlanetBuilder源代码需要通过TortoiseSVN客户端来获取.TortoiseSVN客户端下载地址 http://tortoisesvn.net.网页提供了完整的客户端安装文件,以及语言包.笔者电脑操作系统为Windows 7(3…
osgEarth学习笔记1.        通过earth文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染:所以如果有高低精度不同的影响数据或者高程数据,在创建earth文件时要将粗精度的数据放在上方xml节点,高精度的放在其下面的节点:2.        osgEarth自带多种驱动器,不同的驱动器驱动不同的数据源,自己也可以扩展驱动器读取相应的数据:3.        可以通过profile属性指定数据的投影…
目录 1. 思路 1) 多边形分格化 2) 几何图元遍历 2. 实现 3. 参考 1. 思路 这个问题其实涉及到OSG中的两个问题:多边形分格化和几何图元遍历. 1) 多边形分格化 在OpenGL/OSG中,由于效率的原因,默认是直接显示的简单的凸多边形.如果直接强行显示凹多边形,渲染结果是不确定的.所以对于复杂的凹多边形,需要将其分解成简单的凸多边形,这个过程就是多边形分格化.在OSG中是通过osgUtil::Tessellator类来实现多边形分格化的. 2) 几何图元遍历 对于二维的凹多边…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106144767各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106180872各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106816775各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106926496各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/107837715各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108573195各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108596396红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术.树莓派.三维.OpenCV.OpenGL.ffmpeg.OSG…
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108639103各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt…
目录 1. 概述 2. 详论 2.1. 基本绘制 2.2. 矢量符号化 2.2.1. 可见性 2.2.2. 高度设置 2.2.3. 符号化 2.2.4. 显示标注 2.3. 其他 3. 结果 4. 问题 1. 概述 前面文章加载的底图数据是一种栅格数据,还有一种很重要的地理信息表现形式是矢量数据.在osgEarth中,这部分包含的内容还是很丰富的,这里就总结一二. 2. 详论 2.1. 基本绘制 在<osgEarth使用笔记1--显示一个数字地球>这篇文章中代码的基础之上,添加加载显示矢量的代…
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享,咨询请加QQ:21497936.微信:yangsir198808红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术.树莓派.三维.OpenCV.OpenGL.ffmpeg.OSG.单片机.软硬结合等等)持续更新中-(点击传送门) 树莓派开发专栏 上一篇:<树莓派开发笔记(十):Qt读取ADC…
前言   OSG研究之后,做地理GIS显示了地球:<项目实战:Qt+OSG教育学科工具之地理三维星球>,这一文章是基于OSG做的,而基于OsgEarth是可以进一步对地球进行深度操作,所以本篇开启OsgEarth系列.   OsgEarth编译过程简介   OsgEarth的编译,是基于Osg和OsgEarth结合在一起的,先要编译Osg,然后编译OsgEarth.OsgEarth的依赖库较多,分为上.中.下三篇,然后单独有一篇如何将编译好的osgEarth集成到Qt中.   目标:Qt5.1…
前言   上一篇编译了proj6.2.0.gdal3.2.1,本篇继续.   OsgEarth编译过程简介   OsgEarth的编译,是基于Osg和OsgEarth结合在一起的,先要编译Osg,然后编译OsgEarth.OsgEarth的依赖库较多,分为上.中.下三篇,然后单独有一篇如何将编译好的osgEarth集成到Qt中.   目标:Qt5.15.x + VS2019 x64版本   演示Demo   Demo基于Qt5.15.2 + vs2019 x64 + osg3.6.3 + osg…
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分享,咨询请加QQ:21497936.微信:yangsir198808 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术.树莓派.三维.OpenCV.OpenGL.ffmpeg.OSG.单片机.软硬结合等等)持续更新中-(点击传送门) Qt开发专栏:开发技术 上一篇:<Qt开发Activex笔…