Pro OGRE 3D Programming学习系列(1)设计总揽 (续)

不好意思,第二个链接竟然是第一部分的续,果然让人受打击,原来第一部分的内容还没完。不过,下面要介绍的内容离我们实际应用开发是越来越近了~

 

1.场景管理器(SceneManager)

 

还记得之前说过的场景图和场景内容分离的topic么?不记得了?看这里。简单来说,我们需要在屏幕上画物体,就要用到场景管理器。他可以创建场景节点(SceneNode)。通过场景节点,我们可以控制物体的方位和朝向。也可以进行放大缩小和旋转等操作。注意:场景节点可以出现在不同的场景中。这也就是说,场景节点和场景不是绑定的关系,可以动态添加。

 

当然了,光是有位置信息是不够的,还需要有物体本身的信息。这个时侯就要提到Entity的概念了。一般来说我们通过载入mesh文件来创建Entity。然后将Entity挂接到(其实Entity就是SceneNode对象的一个引用)SceneNode。

 

除了SceneNode,我们还可以挂接其他的特殊的节点到场景中,例如Camera,Light对象。个人感觉,这里的设计有点别扭,如果以后还会出现很多特殊的节点对象,Ogre是不是都要创建一个新的子类?为什么不能让Camera,Light成为SceneNode的子类,使得程序更灵活?

 

2.其他的管理器

 

·日志管理器(LogManager):发送日志信息给输到出流,也可以把信息送到需要使用的代码中去。

 

·控制器管理器(ControllerManager):对控制器(Controller)进行管理,所谓控制器,就是基于变量输入来改变其他类状态的工具类;常用于对动态纹理(Animating Textures)和材质的控制。

 

·动态链接库管理器(DyLibManager):负责管理动态链接库(Windows上的DLLLinux上的共享对象),是Ogre插件体系实现的基础。也会在关闭系统时候卸载库。

 

·平台管理器(PlatformManager):用于对不同硬件和操作系统抽象出来具体的通用对象进行管理。比如其中包括了计时器(Timer)和不同的窗体(例如启动Ogre时用来配置渲染系统的对话框)。

 

·合成器管理器(CompositorManager):用于管理合成器,以便在屏幕空间实现2D后处理特效。

 

·档案管理器(ArchiveManager):管理档(Archive)所使用的不同“容器”,例如ZIP文件或者系统目录。

 

·粒子特效管理器(ParticleSystemManager):管理粒子特效,以及维护发射器和效果器的实现和细节。

 

·材质管理器(MaterialManager):维护应用程序中所有已经载入的材质,并允许不同对象共享同名的材质实例。

 

·骨骼动画管理器(SkeletonManager):维护应用程序中所有已经载入的骨骼动画,并允许不同的模型共享骨骼动画实例。

 

·模型管理器(MeshManager):维护应用程序中所有已经载入的模型,并允许不同实体共享同名的模型对象实例。

 

·高级GPU程序管理器(HighLevelGpuProgramManager):维护,载入,以及编译程序中所有使用的高级GPU着色程序(包括HLSLGLSL或者Cg写的GPU程序)。

 

·GPU程序管理器(GpuProgramManager):维护和载入汇编语言的GPU程序,也可以支持高级GPU程序编译成的汇编着色语言。

 

·外部纹理资源管理器(ExternalTextureSourceManager):管理外部贴图源类的实例,例如那些使用外部视频流生成的即时纹理。

 

·字体管理器(FontManager):管理和载入用于表层(Overlay)中文本渲染的字体。

 

·资源组管理器(ResourceGroupManager):作为“接触点”,用于载入和管理已经注册的应用程序资源,比如模型和材质。

 

·表层管理器(OverlayManager):管理载入和创建2D层类的接口,通常用于HUDGUI或者其他渲染到场景最上层的2D内容。

 

·硬件缓存管理器(HardwareBufferManager):管理硬件缓存(像素缓存,顶点缓存,索引缓存等)。

 

·纹理管理器(TextureManager):管理应用程序中的纹理的索引和载入。

 

 

说实话,第一次看到这么多管理器,几乎疯掉了,不够本着一口吃不成胖子的原则,我们慢慢来,发扬蚂蚁啃大象的精神,step by step。好了,喝口水先,明天再来。

你可能感兴趣的:(timer,windows,汇编,语言,archive,textures)