【问题标题】:Suggestion to which C++ 3D engine is better between Ogre, Irrlicht and OpenSceneGraph [closed]关于 Ogre、Irrlicht 和 OpenSceneGraph 之间哪个 C++ 3D 引擎更好的建议 [关闭]
【发布时间】:2011-07-22 03:05:45
【问题描述】:

我对 3d 图形非常熟悉(我为一个学术项目开发了一个小而简单的 3d 游戏引擎)。 但是现在我必须用 C++ 开发一个音频/视频工具,其中还需要一些 3d 功能,所以我不能依赖我的小程序,但我需要一个具有高性能标准和功能的 3d 引擎框架。

我想知道您对我听说的这 3 种产品中 3d 引擎的最佳选择有何看法:

  1. 食人魔
  2. Irrlicht
  3. OpenSceneGraph

我需要的要求如下:

  1. 跨平台支持
  2. 高性能
  3. 支持视频编解码器
  4. 许可证(可以选择发布使用所选框架编写的我的产品的开源和闭源版本)
  5. 可用的图形效果的质量和数量

请记住,我不是在开发电子游戏,我对最佳框架的选择并不取决于它的使用难度。我只对框架提供的功能感兴趣。

我想更好地了解使用一个框架而不是另一个框架的区别和优势。

【问题讨论】:

    标签: 3d comparison ogre openscenegraph irrlicht


    【解决方案1】:

    首先,OpenSceneGraph(简称 OSG)和 Ogre3D 都有很好的文档记录、支持、大型论坛等...我对 Irrlicht 了解不多,除了它是最新的。前两个中的任何一个都不会出错。有人提到CrystalSpace;我已经很多年没看过了,但它在功能和 API 方面远远落后于这些家伙。

    域

    如果我正在做决定,我想知道我专注于哪个领域。例如全球模拟。或者对将要呈现的内容的感觉。如:从空中看到的地形/地球 |建筑物内部但有一些外部| CAD之类的东西|信息可视化

    我这么说是因为 OpenSceneGraph 在模拟和军事环境中具有强大的影响力。披露:这是我的领域,我每天都使用 OSG。话虽如此,我一直想尝试 Ogre3D,并在场边关注了它多年。我只是还没来得及。因此,我无法进行完整的比较和对比。我认为由于各自项目的历史和主要用户:Ogre3D 更倾向于视频游戏; OSG 更倾向于模拟 行业。但是,两者都没有被束缚在那个舞台上。

    例如,假设我有:
    带有布娃娃/人的模拟:我会选择 Ogre3D。
    必须使用 terrapage 文件的模拟:几乎必须使用 OSG。

    跨平台

    我不能代表 Ogre3D 的 Linux 方面。但是,主要开发人员(罗伯特·奥斯菲尔德)使用 Linux/Mac 来完成他的所有工作。 CMake 用于编译代码。或者只是使用apt-get 来尝试它们。

    性能

    我敢打赌,只要进行适当的调整,两者都会获得良好的性能(再次,渲染什么...... bsp 文件、八叉树、高空模拟?)。使用的操作系统可能对他们很重要。

    视觉效果

    如果没有良好的模型/地形和着色器,您将无法获得任何引擎并认为它会看起来不错。两者之间可能对不同技术有更好的支持,但必须通过具体示例才能获得准确的比较。

    场景管理

    说到这个部分,OSG 非常干净和直观。遍历场景、查找节点、更改子图上的状态,都非常容易。

    脚本

    你没有提到这个,但我想我会把它扔进去。我会在这里使用 Ogre3D。 OSG 需要 3rdParty 或自定义插件。而且,Irrlicht 根本不支持它。


    既然您阅读了我的意见,就像您需要另一个一样,这个网站 (Devmaster) 非常适合其他人寻找。虽然,它缺乏细节。

    ps - 有一些混合(基于 OSG)的东西:那就是 Delta3D。它也得到了很好的支持和更新。并且可能有一个 Ogre3D 衍生物,它更像是模拟:)。

    【讨论】:

    • 感谢您的回答。你能告诉我一些关于视频编解码器支持的事情吗?
    • @0verbose - 回复可能已经太晚了(我不经常检查网站:(),但我想这取决于你在做什么。---如果它是“整个场景到视频“,我从来没有这样做过。我的意思是,我已经用 FRAP 录制了视频,但这可能不是你想要的。--- 如果它是纹理视频的东西(例如游戏中的计算机屏幕预先录制视频),我确信它适用于任何渲染器/引擎。不过,我只能为 OSG 说话,关于它的信息是:osgmovie 示例。
    • 您使用什么 OpenSceneGraph 文档?在我(有限的)经验中,OSG 文档非常缺乏。例如,我根本找不到关于RenderBins 如何在 OSG 中工作的太多信息。
    • 在声称框架文档齐全之前,您是否真的使用过 OSG 文档?
    【解决方案2】:

    如果您想选择一个引擎或任何中间件,您需要明确定义您希望能够做什么。你说你不是在制作游戏,你需要视频编解码器支持。所以听起来你想要用 C++ 编写的 2D/3D、音频和视频播放。

    对于 2D/3D,ogre 是一个优秀的库。它已经存在了很长时间,并且经过了很好的测试,但是 orge 是图形渲染引擎而不是游戏引擎,尽管有第三方库可以添加其他支持。这是一个 MIT 许可证,非常开放,包括商业。

    对于视频播放(以及更多),您可以查找诸如 FFmpeg 之类的库。具有 LGPL 许可证,因此在商业应用程序上没有静态链接。

    Irrlicht 是一个成熟的游戏引擎。这可能有用,但可能没有。您可能必须更改您的项目以匹配引擎工作。这使用了 zlib 许可证的副本,该许可证对商业用途开放。

    关于您的项目的哪些更多信息很难给出好的推荐。希望这可以帮助。

    【讨论】:

    • “Irrlicht 是一个成熟的游戏引擎。”来吧...你是认真的吗?
    【解决方案3】:

    我认为这是个人选择。我更喜欢 Ogre 而不是 Irrlitch(糟糕的 API)或 OpenSceneGraph(糟糕的社区)。 Ogre源代码质量很高,被很多商业游戏使用。

    它不支持视频,但您可以使用第三方库,例如 Ogre3D Video。

    如果您有商业项目,请考虑 Unity 3d(付费版本而非免费版本)。

    所有 3d 引擎都非常相似。主要区别在于着色器系统的工作方式。 Ogre 有一个漂亮而强大的脚本系统来编写着色器。 Ogre 它非常专业且文档齐全(有很多有用的示例和一个不错的社区)。

    【讨论】:

    【解决方案4】:

    Ogre 是您发现的最受欢迎的(由于 Google Trends),因此您可以依靠强大的社区支持。

    此外,您应该在https://gamedev.stackexchange.com/

    上提问

    【讨论】:

    • google 趋势示例中的一个缺陷是您正在捕获 所有 对 ogre 的使用。尝试“Ogre 3d”或“ogre3d”,你会得到一个more comparable result。如果将它们加在一起,仍然是竞争对手的大约 2 倍。
    【解决方案5】:

    Crystal Space 看起来也不错。

    【讨论】:

    • 感谢您的建议。我不知道。但是视频编解码器呢?它是否为他们提供集成支持?
    【解决方案6】:

    Torque 3D 似乎比 Ogre3D 成熟得多,基本上它是一个成熟的游戏引擎(MIT 许可证)。可以使用 C++/Visual Studio 进行开发(几个月前进行了测试),但它也具有嵌入式脚本语言。

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 2011-10-24
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多