OGRE(面向对象的图形渲染引擎)是用C++开发的面向对象且使用灵活的3D引擎。它的目的是让开发者能更方便和直接地开发基于3D硬件设备的应用程序或游戏。引擎中的类库对更底层的系统库(如:Direct3D和OpenGL)的全部使用细节进行了抽象,并提供了基于现实世界对象的接口和其它类。
OGRE特点
l 简单、易用的面向对象接口设计使你能更容易地渲染3D场景,并使你的实现产品独立于渲染API(如Direct3D/OpenGL/Glide等等)。
l 可扩展的程序框架(framework)使你能更快的编写出更好的程序。
l 为了节省你的宝贵时间,OGRE会自动处理常见的需求,如渲染状态管理,hierarchical culling,半透物体排序等等。
l 清晰、整洁的设计加上全面的文档支持。
l 支持Direct3D和OpenGL
l 支持Windows平台,用Visual C++ 6(或Visual C++.Net)和STLport来编译。
l 支持Linux平台,用gcc 3+(或gcc 2.9x)和STLport来编译。
l 材质/Shader支持
l 支持从PNG、JPEG或TGA这几种文件中加载纹理;自动产生MipMap;自动调整纹理大小以满足硬件需求。
l 支持可程序控制的纹理坐标生成(如环境帖图)和转换(平移、扭曲、旋转)。
l 材质可以拥有足够多的纹理层,每层纹理支持各种渲染特效,支持动画纹理。
l 自动应用多通道渲染和多纹理,从而大幅度提高渲染质量。
l 支持透明物体和其它场景级别的渲染特效。
l 通过脚本语言可以不用重新编译就设置和更改高级的材质属性。
l 高效的网格数据格式
l 提供插件支持从Milkshape3D导出OGRE本身的.mesh和.skeleton文件格式。
l 支持骨骼动画(可渲染多个动画的组合)
l 支持用贝赛尔样条实现的曲面
l 拥有高效率和高度可配置性的资源管理器,并且支持多种场景类型。使用系统默认的场景组织方法,或通过亲自编写插件使用自己的场景组织方法。
l 通过绑定体(如绑定盒)实现的场景体系视锥拣选。
l 提供的BspSceneManager插件是快速的室内渲染器,它支持加载Quake3关卡和shader脚本分析。
l 优秀的场景组织体系;场景结点支持物体的附属(attach),并带动附属物体一起运动,实现了类似于关节的运动继承体系。
l 粒子系统包括可以通过编写插件来扩展的粒子发射器(emitter)和粒子特效影响器(affector)。通过脚本语言可以不用重新编译就设置和更改粒子属性。支持并自动管理粒子池,从而提升粒子系统的性能。
l 支持天空盒、天空面和天空圆顶,使用非常简单。
l 支持公告板,以实现特效。
l 自动管理透明物体(系统自动帮你设置渲染顺序和深度缓冲)
l 资源管理和文档加载(ZIP、PK3)。
l 支持高效的插件体系结构,它允许你不重新编译就扩展引擎的功能。
l 运用'Controllers'你可以方便地改变一个数值。例如动态改变一个带防护罩的飞船的颜色值。
调试用的内存管理器负责检查内存溢出。