Singleton
摘要:Singleton模式与在Ogre中的实现 Singleton模式的用意是对于一个Class全局只能创建一个实例。常规的做法是把构造函数藏起来,然后通过静态方法返回唯一的一个静态实例。 class Singleton { private: static Singleton *ms_Instance; public: Static Singleton* GetInstan...
阅读全文
posted @
2006-11-25 19:55
SweetDream
阅读(687)
推荐(1)
Ogre中的平台独立性 之 配置对话框
摘要:OGRE是如何处理初始化对话框的也就是root->showConfigDialog()这个函数究竟在底层进行了一些什么工作。 这个函数分为三个步骤: 1.创建一个对话框:dlg = mPlatformManager->createConfigDialog(); 2.显示对话框并进行配置:isOk = dlg->display(); 3.销毁这个对话框:mPlatformManager->destr...
阅读全文
posted @
2006-05-01 11:17
SweetDream
阅读(712)
推荐(0)
StringInterface
摘要:StringInterface类和相关类的结构图: 继承于StringInterface类可以把它们的属性和String相互转化,从而便于存储和解析。 类ParameterDef定义了支持转化的属性类型。 类ParamCommand实现了转化过程,继承于ParamCommand的类可以把目标类(即参数中的target)的属性转化成String,或是把String设置为目标类的属性:...
阅读全文
posted @
2006-03-10 00:03
SweetDream
阅读(742)
推荐(0)
OGRE中文件相关类
摘要:它们的结构图如下: Archive类 Archive类代表文件容器。FileSystemArchive代表普通的文件容器,也就是文件夹。在Ogre中它还派生了ZipArchive。在上面的UML图中没有给出。Archive中给出了一些存虚函数:比如: virtual StringVectorPtr list(bool recursive = true ) = 0;virtual FileInf...
阅读全文
posted @
2006-03-09 01:30
SweetDream
阅读(706)
推荐(0)
Demo_Lighting
摘要:这个DEMO主要有3个知识点: 1. Light类 Light类继承于MoveableObject类。所以它拥有MoveableObject类的一切属性。 光源有3种类型,分别是点光源 (Point lights),定向光源 (Directional lights),和聚光灯 (Spot lights),在Light中用一个枚举表示: enum LightTypes{ LT_POI...
阅读全文
posted @
2006-02-24 21:13
SweetDream
阅读(1222)
推荐(0)
Demo_Transparency
摘要:这个Demo显示了OGRE可以根据深度缓冲来自动地正确渲染多个重叠的透明物体。NEHE_Lesson 8 中有说:渲染透明物体正确的方法是在整个场景绘制完之后再绘制所有的透明 (alpha < 1.0) 多边形, 而且要按照由远及近的深度顺序, 这是由于事实上按照不同的顺序混合两个(1和2)多边形会得到不同的结果。 假如多边形1距离我们最近, 那么正确的方法是先绘制多边形2, 然后是多边形...
阅读全文
posted @
2006-02-22 16:55
SweetDream
阅读(449)
推荐(1)
Demo_Terrain
摘要:要弄明白这个例子先让我们来看看OGRE中RaySceneQuery目的和使用方法。RaySceneQuery继承于SceneQueryListener和SceneQuery。这一系列类是用来在场景中执行查询操作的。例如查找与指定区域相交的world geometry。他们的继承结构图如下: 这个Demo中使用的RayScenQuery是查找与指定Ray: updateRay;相...
阅读全文
posted @
2006-02-22 16:48
SweetDream
阅读(690)
推荐(0)
Demo_TextureFX分析
摘要:DEMO的主要目的是说明如何使用 material 属性来创建运动的纹理。运动的纹理是与静态纹理相区别的,这里有多种运动的定义:1. 通过定义多个帧,即多幅图片来描述纹理的运动。2. 通过对纹理的旋转,缩放,滚动等操作。 主要函数有三个,分别是:createScalingPlane();createScrollingKnot(); createWateryPlane();它们的实现大同小异,下面...
阅读全文
posted @
2006-02-14 11:08
SweetDream
阅读(621)
推荐(0)
OGRE资源相关分析
摘要:Resource Resource的类继承体系如下: Resource代表着一类可以被载入的资源,比如Mesh,Texture等。每个资源有其唯一的Name,根据Name可以定位到某个资源,这样也确保了资源只能被载入一次。并且Resource必须在一段时间不使用的时候要被删除。 要实现为Resource子类有以下要求: 1. 构造函数和Resorce有...
阅读全文
posted @
2006-02-10 01:02
SweetDream
阅读(1463)
推荐(1)
Demo分析之CameraTrack
摘要:这个例子主要涉及到两方面内容: 1. camera 的自动跟踪功能,它可以使得摄像机无论怎样移动总是对准一个物体。这里说的物体不是公告板技术中的平面物体,而是一个SceneNode。 2. 使用了动画相关的功能。这个例子中使得摄像头沿着预先定义的轨迹移动。 下面就来详细的分析这个DEMO: 下面三行代码定义了一个Ogre的头Entity,然后把它挂接到场景树中的一...
阅读全文
posted @
2006-02-08 15:59
SweetDream
阅读(831)
推荐(0)
Ogre的消息机制
摘要:消息机制的设计一般总要设计到三个部分:消息的产生、消息的传递和消息的处理。 OGRE中的消息处理者的抽象类主要是listener类,而listener必须是对应特定的target的,所以可以认为是由listener和target两个抽象类组成。而消息传递这是有:Dispatcher和Processor组成。那么消息的产生有那些呢?暂时只分析出Input Reader。下面介绍大概的结构。 ...
阅读全文
posted @
2006-01-05 22:51
SweetDream
阅读(1364)
推荐(0)