MyException - 我的异常网
当前位置:我的异常网» 开源软件 » OGRE发动机

OGRE发动机

www.MyException.Cn  网友分享于:2013-08-04  浏览:17次
OGRE引擎

OGRE引擎

一、它能做什么?

  能做许多!你可以参考特性页中当前特性的更新列表。你也可以通过网站上的截屏看到它是多么棒。

  三、OGRE是一个游戏引擎吗?

  不。OGRE能(实际上就是)被用于开发游戏,但是OGRE被设计成只提供一个世界级的图形解决方案;对于其他的特性,如:音效、网络、人工智能、碰撞检测、物理等子系统,你则需要将其整合到OGRE中,在这些子系统中,已有一些成熟的库可供选择,在发布的SDK中,我们有一个碰撞/物理的参考整合库的例子。

  那为什么OGRE不是一个游戏引擎呢?原因之一是:不是每一个需要3D引擎的人都想用其来做游戏,我们并没有假设你要将OGRE用于游戏开发、模拟、商业应用、或是其他用途。其次,游戏产业中的需求是相当广泛的;以MMORPG(Massive Multiplayer Online Role Playing Game,即:大型多人在线角色扮演游戏)为例,它比起FPS(First Person Shooting,即:第一人称射击)类游戏,需要不同类型的网络库,再如一个格斗类游戏将需要不同类型的碰撞/物理系统。如果OGRE包括了所有这些特性,你将被迫在一系列内建的假定的需求下使用一套有针对性的库,那将不是一个好的设计。相反,我们提供了一个用于整合其他库的非常友好的API。许多有经验的游戏开发者已经证明了这一点,因为没有内建的限制。这可能会使得那些仅仅只是想创建另一种类型的FPS游戏的新用户感到更加沮丧,但是对于这些人来说,已经有大量现存的采用OGRE提供完整解决方案的综合库可供使用。然而,需要明白的是OGRE自身总是保持足够地独立和灵活,以致能够与任何其他库融为一体。“与其他库协作和整合,而不是实现他们”的原则是面向组件设计的标准原则。

二、为什么建议使用OGRE?

  其他引擎,虽然有些在技术上给人以很深的印象,然而由于缺乏内聚性设计和一致性文档致使它们不能被有效地使用。它们中的许多有很长的特性列表,但是由于缺乏清晰的思路将其整合在一起而给人一种像是用麻绳将这些技术捆绑到一起的感觉。就像其他软件系统一样,当它们变得更大的时候,也就是它们衰败的时刻。大多数其他引擎也被设计为适用于某一类特定游戏(例如:FPS)。

  OGRE不同。OGRE的设计理念是“以设计为主导”,而非“特性为主导”。被加进OGRE中每一个特性都是经过深思熟虑,使其尽可能地优雅,并保证了文档的一致和详尽,这样让人感觉这个特性与全局浑然一体。品质胜于数量,因为数量可以随后被增加,然而质量却不可能在后面被添加。OGRE采用那些在商业级软件中被反复试验、学习和验证过的完善的设计原则(在OGRE名字中所提及的面向对象只是这些实践中的一种,其他还有经常使用的设计模式)。我们有意识地保持核心开发团队的小规模,团队中的成员都是有多年开发经验的软件工程师。我们欢迎来自社区的补丁,但是在它们被接受之前,它们必须被严格地审核以求符合OGRE质量和内聚性的设计要求。

  OGRE并没有假定你想做某种类型的游戏或DEMO,它采用灵活的类层次允许你为你所喜欢的任何场景开发特定的场景管理插件。想要快速层次渲染室内场景吗?很好,你可以使用现有的BSP(Binary Space Partition,即:二叉空间分割)/PVS(Possible Visible Set,即:可见集)场景管理插件。那对于室外呢?你同样可以使用其他的场景管理插件。引擎的其余部分如以前一样继续准确无误地运行。

  因此,一个简短的回答是:如果你喜欢具有高质量、灵活性和清晰文档的设计,那么,请选择OGRE,你将知道它是有意义的。

三、它真的是免费的吗?

  OGRE的源代码遵循LGPL(GNU Lesser General Public License,即:GNU 宽通用公共许可证[1]),这基本上意味着你可以免费使用它,但是当你对内核引擎做了修改并将发布的时候,你必须将你的源代码一同发布。但是你所创建的应用或开发的新插件则不必发布其源代码。全部协议条款请参考授权页面。

  --------------------------------------------

  [1] 什么是 GPL、LGPL 和 GFDL?它们和源代码以及商业销售之间的关系是什么?

  GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式;LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Public License (GNU 库通用公共许可证);GFDL 是 GNU Free Documentation License (GNU 自由文档许可证)的缩写形式。它们是自由软件(Free Software)的通用版权认证协议,由自由软件基金会(FSF)制定和发布。

  基于 GPL 的软件允许商业化销售,但不允许封闭源代码。

  如果您对遵循 GPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 GPL 协议,不允许封闭源代码。

  基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。

  如果您对遵循 LGPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 LGPL 协议,不允许封闭源代码。但是如果您的程序对遵循 LGPL 的软件进行任何连接、调用而不是包含,则允许封闭源代码。

  [译者注:本文由Groov0V翻译,转载请指明出处]

  ‍

  OGRE能运行在linux和windows平台下

  LINUX下可以使用各发行版自带的包管理器下载安装,其次,3D模型素材可以使用blender绘制,安装blender的ogre扩展包后导出即可在ogre中使用

OGRE初学者引导(1):VS2008下如何配置Ogre

  首先是正确安装了OgerSDK,然后再照下面的步骤来配置。

1.新建

  Win32空项目Ogre2.

2.工具

  1. ->选项->项目和解决方案->VC++目录 显示以下内容的目录->包含文件

  2. 添加:C:\Ogre\OgreSDK\samples\include

  3.添加:C:\Ogre\OgreSDK\include 显示以下内容的目录->库文件

  4. 添加:C:\Ogre\OgreSDK\lib3.项目->属性->配置属性

  工作目录:C:\Ogre\OgreSDK\bin\debug4.项目->属性->配置属性->链接器->输入 附加依赖项:OgreMain_d.lib OIS_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib (_d表示debug版本的lib)

  5.新建一个cpp文件,拷贝下面的代码到里面

  6.运行结果如下图:

  他将显示OGRE安装对话框,并开始一个包含FPS的深黑的屏幕(在左边)和OGRE LOGE(右边的图标)。

  我在这里没有添加任何东西,当按ESC键退出。

  代码:

  --------------------------------------------------------------------

  #include "ExampleApplication.h" class TutorialApplication : public ExampleApplication

  {

  protected:

  public:

  TutorialApplication()

  {

  }

  ~TutorialApplication()

  {

  }

  protected:

  void createScene(void)

  {

  }

  };

  #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32

  #define WIN32_LEAN_AND_MEAN

  #include "windows.h"

  INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )

  #else

  int main(int argc, char **argv)

  #endif

  {

  // Create application object

  TutorialApplication app;

  try {

  app.go();

  } catch( Exception& e ) {

  #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32

  MessageBoxA( NULL, e.what(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);

  #else

  fprintf(stderr, "An exception has occurred: %s\n",

  e.what());

  #endif

  }

  return 0;

  }

  ----------------------------------------------------

文章评论

我是如何打败拖延症的
我是如何打败拖延症的
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
老程序员的下场
老程序员的下场
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员必看的十大电影
程序员必看的十大电影
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员的鄙视链
程序员的鄙视链
程序员应该关注的一些事儿
程序员应该关注的一些事儿
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
那些争议最大的编程观点
那些争议最大的编程观点
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
我的丈夫是个程序员
我的丈夫是个程序员
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
漫画:程序员的工作
漫画:程序员的工作
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
旅行,写作,编程
旅行,写作,编程
中美印日四国程序员比较
中美印日四国程序员比较
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员都该阅读的书
程序员都该阅读的书
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
一个程序员的时间管理
一个程序员的时间管理
代码女神横空出世
代码女神横空出世
鲜为人知的编程真相
鲜为人知的编程真相
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
 程序员的样子
程序员的样子
编程语言是女人
编程语言是女人
Java程序员必看电影
Java程序员必看电影
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
每天工作4小时的程序员
每天工作4小时的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有