31

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

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

  1. 食人魔
  2. 伊尔利赫特
  3. 开放场景图

我需要的要求如下:

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

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

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

4

6 回答 6

21

首先,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 衍生物,它更像是模拟:)。

于 2011-06-16T03:06:07.347 回答
8

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

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

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

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

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

于 2011-05-04T22:33:12.213 回答
3

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

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

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

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

于 2011-05-03T08:09:43.583 回答
3

Ogre在您发现的那些中最受欢迎(由于Google 趋势),因此您可以依靠强大的社区支持。

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

于 2011-05-05T09:38:49.577 回答
1

水晶空间看起来也不错。

于 2011-05-05T05:41:00.937 回答
1

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

于 2015-06-24T01:14:54.613 回答