1 / 15

· 什么是 OGRE · OGRE 的起源 · OGRE 特性 · OGRE 设计总览 · OGRE 程序样 例

· 什么是 OGRE · OGRE 的起源 · OGRE 特性 · OGRE 设计总览 · OGRE 程序样 例. 什么 是 OGRE. Oh ! GRE…. 哦, GRE 啊 (God Reads English) Ogre [‘ əuɡə ] 童话中的怪物

selah
Download Presentation

· 什么是 OGRE · OGRE 的起源 · OGRE 特性 · OGRE 设计总览 · OGRE 程序样 例

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. · 什么是OGRE · OGRE的起源 · OGRE特性 · OGRE设计总览 · OGRE程序样例

  2. 什么是OGRE • Oh!GRE…. 哦,GRE啊(God Reads English) • Ogre [‘əuɡə] 童话中的怪物 • Ogre是一个开源图形渲染引擎(Open-source Graphics Rendering Engine),其实它的名字的原意是面向对象图形渲染引擎(Object-oriented Graphics Rendering Engine),巧了,缩写是一样的! :-)它是由一个小型核心团队编写和维护,并依靠其不断成长的社区提供支持。

  3. 什么是OGRE • Ogre“只是”一个图形渲染引擎,而不是游戏引擎。他主要为多平台的图形渲染提供一个通用的解决方案。 • 对于游戏开发或学术研究而言,Ogre尽管提供诸如向量、矩阵和内存控制等功能,但他不是一个一体化的解决方案,例如:Ogre不包括声音、网络和物理特性的支持。

  4. OGRE 3D的起源 • 在二十世纪八九十年代,世界上似乎还只有id公司的约翰·卡马克开发的3D游戏引擎。 • 当时在英国有一个叫做“Steve Streeting”的软件工程师,从一个做了十年软件工程的技术人员的角度,他认为原始的3D游戏引擎还是有很多可以改进的地方,特别是在软件结构和框架上。

  5. OGRE 3D的起源 Steve ‘sinbad’ Streetingstarted the engine now known as OGRE in 2000, after having had the crazy idea of creating a well designed, scene-structure independent engine. Steve was the ‘benign dictator’ on the OGRE project for 10 years until April 2010, at which point he retired for health reasons and is now a more occasional contributor. Steve has a long history in graphics coding going back to the early 90′s as well as having more than 15 years of more ‘traditional’ professional software development experience under his belt.

  6. OGRE的特性(支持的平台与3D API) • 支持的平台与3D API • 支持Direct3D(支持DirectX 9,10和11)和OpenGL。 • 支持Windows(所有主要版本),Linux和Mac OSX • 可在Windows平台上的Visual C++ 6,Visual C++ .NET,Visual C++ .NET 2003以及Visual C++ 2005编译运行(Visual C++2003以前的版本需要STLport;注意:Ogre 1.2.0以后不再支持Visual C++ 6 / Visual C++ 7.0)。 • 可在Linux和Mac OSX gcc 3以上编译运行。

  7. OGRE的特性(Material / Shader)

  8. OGRE的特性(网格)

  9. OGRE的特性(特效) • 粒子系统,包括可轻松扩展的粒子发射器和粒子修改器(可通过插件自己定义)。系统可以通过文本脚本轻松修改。为达到最佳表现效果而自动使用粒子池。 • 支持skyboxes,skyplanes和skydomes,非常容易使用。 • 用于sprite图像的公告板。 • 透明对象自动管理(渲染顺序及深度缓冲器设置全都已经为您设置好了)。 • 层系统允许您建立HUDs和使用2D和3D对象的菜单。 • 灵活的雾控制。 • 软件dot3凹凸贴图。 • Cube mapping • 后处理效果

  10. OGRE设计总览 • 对设计模式的使用 Ogre中使用设计模式来提高程序库的可用性和弹性。例如,Ogre使用观察者(Observer)模式将自己的每一个状态变化通知给应用程序,客户代码通过注册来监听Ogre中事件和状态的改变来得到相应通知(例如演示程序中使用的FrameListener对象,可以监听到应用程序每一帧渲染的开始和结束事件)。单件模式(Singleton)用来保证一个类只有一个实例,迭代器模式(Iterator)用来历遍一个数据结构中的所有数据。访问者模式(Visitor)可以让你在不改变对象(例如,场景中所有节点)的前提下,增加定义一个新的对象的操作。外观模式(Façade)为子系统中的一组操作接口报漏给调用层一个统一的接口。最后,工厂模式(Factory)(以及它的近亲抽象工厂模式,Abstract Factory)广泛的用来创建抽象接口的实例。

  11. OGRE设计总览 • 场景图与场景内容分离

  12. OGRE设计总览 • 插件体系 Ogre被设计成可扩展的。与传统的渲染API设计区别的地方,就是Ogre并没有强迫用户一定要使用某一个组成部分。使用者可以根据自己需要来组合不同的插件来实现不同的效果。Ogre通过一套固有的“契约模型(contract-based)”来支持相应的功能。换句话说,Ogre被设计成为类似集合的装置,里面包含着一些支持不同功能的元素,这些元素通过一套共识的接口(契约)来实现之间的通信协作。

  13. OGRE设计总览 • Ogre中的管理器 日志管理器(LogManager):发送日志信息给输到出流,也可以把信息送到需要使用的代码中去。 ·控制器管理器(ControllerManager):对控制器(Controller)进行管理,所谓控制器,就是基于变量输入来改变其他类状态的工具类;常用于对动态纹理(Animating Textures)和材质的控制。 ·动态链接库管理器(DyLibManager):负责管理动态链接库(Windows上的DLL,Linux上的共享对象),是Ogre插件体系实现的基础。也会在关闭系统时候卸载库。 ·平台管理器(PlatformManager):用于对不同硬件和操作系统抽象出来具体的通用对象进行管理。比如其中包括了计时器(Timer)和不同的窗体(例如启动Ogre时用来配置渲染系统的对话框)。 ·合成器管理器(CompositorManager):用于管理合成器,以便在屏幕空间实现2D后处理特效。 ·档案管理器(ArchiveManager):管理档(Archive)所使用的不同“容器”,例如ZIP文件或者系统目录。 ·粒子特效管理器(ParticleSystemManager):管理粒子特效,以及维护发射器和效果器的实现和细节。 ·材质管理器(MaterialManager):维护应用程序中所有已经载入的材质,并允许不同对象共享同名的材质实例。

  14. OGRE设计总览 · 骨骼动画管理器(SkeletonManager):维护应用程序中所有已经载入的骨骼动画,并允许不同的模型共享骨骼动画实例。 · 模型管理器(MeshManager):维护应用程序中所有已经载入的模型,并允许不同实体共享同名的模型对象实例。 • 高级GPU程序管理器(HighLevelGpuProgramManager):维护,载入,以及编译程序中所有使用的高级GPU着色程序(包括HLSL,GLSL或者Cg写的GPU程序) • GPU程序管理器(GpuProgramManager):维护和载入汇编语言的GPU程序,也可以支持高级GPU程序编译成的汇编着色语言。 • ·外部纹理资源管理器(ExternalTextureSourceManager):管理外部贴图源类的实例,例如那些使用外部视频流生成的即时纹理。 • ·字体管理器(FontManager):管理和载入用于表层(Overlay)中文本渲染的字体。 • ·资源组管理器(ResourceGroupManager):作为“接触点”,用于载入和管理已经注册的应用程序资源,比如模型和材质。 • ·表层管理器(OverlayManager):管理载入和创建2D层类的接口,通常用于HUD,GUI或者其他渲染到场景最上层的2D内容。 • ·硬件缓存管理器(HardwareBufferManager):管理硬件缓存(像素缓存,顶点缓存,索引缓存等)。 • ·纹理管理器(TextureManager):管理应用程序中的纹理的索引和载入。

  15. OGRE设计总览

More Related