OpenSceneGraph
sxjlinux
这个作者很懒,什么都没留下…
展开
-
9、osgGA::GUIEventHandler,osgFX::Scribe
一、osgGA::GUIEventHandler类类说明:处理OSG程序与用户交互的类。非常重要。1、GUIEventHandler () GUIEventHandler (const GUIEventHandler &eh, const osg::CopyOp &)说明:构造函数,第二个构造函数为从已知的类EventHandler来构造新的EventHandler,转载 2015-12-09 14:07:18 · 2896 阅读 · 0 评论 -
3、对模型的移动,缩放,以及旋转
1、要对模型的移动,缩放和旋转,要使用osg::Matrix对象中的translate()(移动),scale()(缩放),rotate()(旋转),那么要使用这些还必须有osg::MatrixTransform对象作为基础,此对象是对模型的位置进行管理的,可通过setMatrix()函数进行设置位置,以及通过addChild()添加模型,最后都加入到Group对象中,如以下代码是移动:osg转载 2015-12-07 22:57:05 · 887 阅读 · 0 评论 -
4、osg::Node,osg::Group,osg::Switch,osg::MatrixTransform类
一、osg::Node类类描述:osg::Node为结点类,下有派生类无数,是OSG中最重要的类之一,也是最常用的类之一。1、Node () Node (const Node &node, const CopyOp ©op=CopyOp::SHALLOW_COPY)说明:构造函数,其中第二个重载函数是从已知的Node当中构建出新的Node,里面含有两个参数,第转载 2015-12-08 00:35:10 · 3930 阅读 · 0 评论 -
1、osgViewer::Viewer,osgViewer::ViewerBase,osgGA::KeySwitchMatrixManipulator,osg::ArgumentParser的说明
一、osgViewer::Viewer类Viewer()Viewer (osg::ArgumentParser &arguments)Viewer (const osgViewer::Viewer &viewer, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)说明:这三个函数是osgViewer::Viewer的构造函数。其中转载 2015-12-07 23:29:20 · 1987 阅读 · 0 评论 -
osgOcean+VS2010+Win7编译方法
1、首先要下载osgOcean-Source-1.0.1包,以及依赖包osgOcean-Resources-1.0.1、fftss-3.0-20071031,可在:链接:http://pan.baidu.com/s/1qXlu8A4 密码:hdbx,下载2、下载好之后,在D盘的osg3.2文件夹下创建一个osgOcean文件夹,并将下载的源码放到该文件夹下,并解压,如下图所示:3、原创 2015-12-24 21:02:35 · 3695 阅读 · 7 评论 -
5、osg绘制正方形和四方块以及内置的几何图形
1、首先要定义一个几何图形,用来创建正方形的一个对象,这个对象根据坐标,颜色来进行绘制,如下代码创建一个几何对象:osg::ref_ptr geom=new osg::Geometry();//定义一个几何体2、创建一个坐标集合对象,并且向对象中存入4个3维坐标点,如下代码所示://首先定义四个点osg::ref_ptr v=new osg::Vec3Array();//定义一个几何体坐转载 2015-12-08 15:18:22 · 8005 阅读 · 0 评论 -
2、OpenSceneGraph中添加节点、删除节点、隐藏节点以及添加开关的用法
1、添加节点之前要先声明一个组也就是根节点,就像是节点树一样必须要有一个根,然后在这个根下添加子节点,而子节点下还可以添加子节点,可通过osg::Group来创建一个根节点,如下代码所示:osg::Group *root=new osg::Group();2、那么在这个根上添加节点,可使用osg::Node来声明并创建一个节点,并未该节点添加模型,如下代码所示:osg::Node *a原创 2015-12-07 21:13:41 · 5510 阅读 · 0 评论 -
7、osg中响应键盘鼠标事件以及鼠标和键盘编码表
1、首先定义一个类,该类继承与osgGA::GUIEventHandler,在此类中存在一个handle函数,所有的事件都在此函数中进行处理,如下类的代码://声明类UseEventHandler,由于它是从osgGA::GUIEventHandler派生而来,所以它拥有处理事件的能力,其中这种能力体现在一个虚函数handle上。//一切的处理都在handle当中。class UseEve转载 2015-12-08 22:49:19 · 9012 阅读 · 2 评论 -
8、osg中拾取模型对象
1、以下是所有代码:#include "stdafx.h"#include #include #include #include #include #include class CPickHandler:public osgGA::GUIEventHandler{public: CPickHandler(osgViewer::Viewer *viewer):mViewer(转载 2015-12-09 11:34:35 · 4105 阅读 · 0 评论 -
osgEarth2.7+vs2010+win7编译方法
1、首先在osg3.2目录中新建一个osgEarth文件夹,将所有包都下载到此文件夹中。2、下载相应的源码包以及依赖包,可在:链接:http://pan.baidu.com/s/1i4j6Y4P 密码:an0b,下载,它包括以下包,如下图所示:3、首先解压curl-7.46.0.zip,然后在curl-7.46.0目录中新建一个build,如下图所示:4、打开CMake原创 2015-12-27 01:43:41 · 10031 阅读 · 1 评论 -
18、osg3.2.1+qt5.5+vs2010例子,也是osg中的例子
1、首先要在vs2010中创建一个基于qt的QWidge工程(OsgQtTest),然后对osgqtest.h进行修改,如下代码:#ifndef OSGQTTEST_H#define OSGQTTEST_H#include #include #include #include #include #include #include #include #include #in原创 2015-12-19 16:09:04 · 4150 阅读 · 5 评论 -
OSG中的示例程序简介
1.example_osganimate一)演示了路径动画的使用(AnimationPath、AnimationPathCallback),路径动画回调可以作用在Camera、CameraView、MatrixTransform、PositionAttitudeTransform等四种类型的节点上。二)演示了osgSim::OverlayNode的使用2.example_osgan转载 2015-12-20 16:14:13 · 1295 阅读 · 0 评论 -
6、osg::Geode,osg::Drawable,osg::Shape,osg::Geometry,
一、osg::Geode类类说明:Geode结点,是个几何结点,可以说是一个几何Group结点,一般的可绘制几何体都是通过它来传向root进行渲染。是OSG几何绘制的最高管理结点。1、Geode () Geode (const Geode &, const CopyOp ©op=CopyOp::SHALLOW_COPY)说明:构造函数,第二个构造函数意思为从一转载 2015-12-08 17:16:40 · 4242 阅读 · 0 评论 -
9、osg3.2.1中漫游
效果图如下:以下是South.h文件的源码//操作器管理类,用来管理操作器#include #include #include #include class CSouth:public osgGA::CameraManipulator{public: CSouth();public: ~CSouth();private: //节点值,用来测试碰撞检测转载 2015-12-10 00:18:42 · 1249 阅读 · 0 评论 -
10、osg::AnimationPath,osg::NodeVisitor类
一、osg::AnimationPath类1、AnimationPath () AnimationPath (const AnimationPath &ap, const CopyOp ©op=CopyOp::SHALLOW_COPY)说明:构造函数,第二个构建函数为从已知值来构造新的AnimationPath.2、bool getMatrix (double转载 2015-12-12 00:50:41 · 2395 阅读 · 0 评论 -
11、osg中的粒子系统所用到的类以及相关函数
在OSG中提供有专门的粒子系统工具,名字空间为osgParticle,OSG对经常使用的粒子模拟都做了专门的类,如:ExplosionEffect用于暴炸的模拟,FireEffect用于火的模拟,ExplosionDebrisEffect用于爆炸后四散的颗粒模拟,等等。这些类基本上使用起来极其方便,稍后我们来介绍这几个类。在OSG中有下面这几个类组成OSG粒子系统的中坚部分:osgPartic转载 2015-12-13 23:12:07 · 3142 阅读 · 0 评论 -
12、osg中的雪花效果
代码:// Effect.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer viewer; //创建雪花对象 osg::ref_ptr precipation转载 2015-12-14 22:14:21 · 1833 阅读 · 1 评论 -
13、osgParticle::Particle,osgParticle::ParticleSystem,osgParticle::ConstantRateCounter
一、osgParticle::Particle类功能:设置粒子的一些基本属性之类的。 类继承图:独类1、Particle() 说明:构造函数。2、Shape getShape () const说明:得到粒子的形状,Shape有以下枚举值 (这些值大家应该都非常熟悉):POINT, QUAD, QUAD_TRIANGLESTRIP, HEXAGON, LINE3、vo转载 2015-12-15 20:23:59 · 1764 阅读 · 1 评论 -
14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件)
如下代码:#include "stdafx.h"#include #include #include #include #include #include int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer viewer ; //读取模型 osg::Node* node = osgDB::readNodeFile转载 2015-12-16 22:13:25 · 1972 阅读 · 1 评论 -
15、osg中使用LOD设置当模型超过多少米,不显示模型
如下代码:// fountain.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #include #include int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer viewer ;转载 2015-12-16 22:19:06 · 2766 阅读 · 1 评论 -
16、osg中使用Imposter设置一个视矩,超过这个视距模型会变为一张动态图
代码如下:// fountain.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include int _tmain(int argc, _TCHAR* argv[]){ //申请viewer osgViewer::Viewer viewer ; //读取模型 osg::Nod转载 2015-12-16 22:28:54 · 1456 阅读 · 0 评论 -
17、osg::Camera,osg::LOD,osgSim::Impostor类函数说明
一、osg::Camera类类说明:为视口添加camera的类。用于显示。1、 Camera () Camera (const Camera &, const CopyOp ©op=CopyOp::SHALLOW_COPY)说明:构造函数,第一个是否为自动组建该类,将采用一些默认参数。默认为真。第二个构造函数为从已知的Camera创建新的Camera。拷贝转载 2015-12-16 23:24:09 · 3193 阅读 · 0 评论 -
17、osgText::Text
一、osgText::Text文字类1、void setFont (Font *font=0)说明:设置字体,虽然说字体有单独的类,但是很少使用,但是字体贴图是在这个阶段形成的2、void setFont (const std::string &fontfile) const Font * getFont () const说明:设置/得到字体,如setFont("f转载 2015-12-17 19:28:39 · 3085 阅读 · 0 评论 -
19、osg中控制帧速实例
// Example1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #include #include using namespace std;class TestHandler:public osgGA::GUIEventHandler{pu转载 2015-12-27 21:28:26 · 2133 阅读 · 0 评论