参考资料:
电子书:《Pro OGRE 3D Programming》中文翻译本
官方wiki: http://www.ogre3d.org/wiki/index.php/Main_Page
中文网站(有电子书下载):http://www.ogre3d.cn/
OGRE(Object-oriented Graphics Rendering Engine)(Ogre, 食人魔),是一款成熟、稳定、可靠、灵活、跨平台、而且拥有丰富功能开源实时3D图形渲染引擎(并不是游戏引擎),由ogre3d.org社区维护,遵守LGPL(GNU Lesser General Public License)协议。
同类其他开源引擎:
1. Irrlicht(鬼火)
2. Nebula(星云)
3. klayGE
OGRE引擎特性:
·全面并同等的支持OpenGL和Direct3D
·全面支持Windows,Linux以及Mac OS X平台
·其完全的面向对象设计,允许您通过插件和子类毫不费力地扩展引擎的功能。
在Ogre 3D的名字中包含“3D”是很贴切的,因为那就是它所能做的所有事情。它不能处理用户输入,不能管理你的游戏状态,不能做网络通讯,不能播放声音。它只是做为一个3D渲染引擎被设计出来,并且那就是它唯一的应用。因为专业,所以它总是能够很好的完成它本分的任务。(虽然Ogre引擎中也会包含比如输入系统等一些简单的实现,但官方的说法一般是:这只是为了支持演示程序所提供的,不建议你在自己实际的应用中使用。你需要在Ogre去中去寻找其他的库来完善你自己的工具箱。)
当今大多数软件都会依赖于其他软件或者开发包中提供的外部功能,这样可以让软件的开发在别人已经存在的成果之上,避免了重复制造轮子。如果不需要对常用的功能重复实现,这样做最直观的好处就是促使工作团队更集中精力解决他们自身软件中所存在的问题,进而产生出更高质量的产品。而且随着开源社区的发展,越来越多优秀的软件或者程序库可以从网络上免费得到。不过更多的依赖项目也意味着需要相对更复杂的编译环境设置,甚至有时候要编译构建所依赖的项目源代码产生。如果依赖了一些在活跃开发期的项目,就意味着有可能需要经常更新。OGRE的最小依赖集有FreeType, OpenIL, zziplib。
我能用OGRE 做游戏吗?是的,你能。并不象许多其他的3D引擎,OGRE并不是适合任何类型的游戏。由于开发的原因,OGRE只适合第一人称射击游戏。OGRE特别适合制作3D 游戏。
Ogre 3D自发布以来,被成功地应用于诸多三维仿真领域。其中包括网络游戏和一些商业的三维仿真项目。
在国内,基于OGRE的网游大作MMO已经有几款了,其中包括搜狐的《天龙八部》、吉比特的《问鼎》、深圳网域的《华夏2》以及久游的《疯狂飙车》。
Ogre是一个庞大而纷杂的对象和模块集合,如果初学者希望直接从对象列表中得到什么信息的话,可能会感到眼晕。但是事实上事情远没有这么复杂,当在你真正开始使用的时候,你会体会到Ogre完全面向对象设计的好处,绝大部分的细节都被隐藏在成熟的层次结构之中,只需要你简单的调用,就能实现很绚丽的功能。对于3D API或者其他一些引擎的使用者而言,很少能有这种经历,甚至也不会去这么想:在Ogre可以用很少的代码来完成一个完整而漂亮的3D应用程序。
引擎这个术语暗示Ogre 3D 为你的3D图形的应用程序提供了“强大的动力”,进而允许你更多关注应用程序细节而不是一个3D场景的渲染过程。作为应用程序的中间件,Ogre扮演了一个专注于处理了三维空间场景的角色。如果你熟悉Direct3D或者OpenGL,你会知道直接写一个图形程序需要多少代码,当你了解Ogre让你可以用很少量的代码来构建一个完整的三维场景(也有用在其他的方面,我们将在之后的文章中介绍)的时候,你就会庆幸有Ogre的存在。
Ogre通过面向对象的方法实现了这样的一个入口,从实际应用进入到3D引擎具体的本职工作:把基本几何体渲染到目标区域(一般情况下指的是CRT或LCD显示设备的屏幕缓存,但也有例外)