3dcomparisonogreopenscenegraphirrlicht

Suggestion to which C++ 3D engine is better between Ogre, Irrlicht and OpenSceneGraph


I'm quite familiar with 3d graphics (I developed a little and simple 3d game engine for an academic project). But now I have to develop an audio/video tool in C++ that requires also some 3d features inside it, so I can't rely on my little program but I need a 3d engine framework with high performances standards and features.

I would like to know your opinions about what's the best choice for a 3d engine between these 3 products which I heard about:

  1. Ogre
  2. Irrlicht
  3. OpenSceneGraph

The requirements that I need are the following:

  1. Cross platform support
  2. High performances
  3. Support for video codec
  4. Licenses ( possibly have the choice to release both open and closed source version of my product written with the chosen framework)
  5. Quality and quantity of graphic effects avaible

Answering please keep in mind that I'm not developing a videogame and my choice of the best framework will not depend on how much it is difficult to use. I'm interested only in the features that the framework offers.

I would like to understand better which are the differences and the advantages of using one framework instead of another.


Solution

  • First off, both OpenSceneGraph (OSG for short) and Ogre3D are very well documented, supported, large forum etc... I don't know much about Irrlicht besides it's the newest of them. You probably won't go wrong with either of the first two. Someone mentioned CrystalSpace; I haven't looked at that in years, but it was far behind these guys in features and API.

    Domain

    If I was deciding, I would want to know what domain I was concentrating in. e.g. Whole earth simulation. Or a sense of what is going to be rendered. Such as: Terrain/earth as seen from air | Inside of a building but with some outside | Something CAD like | Information visualization

    I say that, because OpenSceneGraph has a strong influence in the simulation and military setting. Disclosure: that's my field and I use OSG on a daily basis. That said, I've always wanted to try Ogre3D and followed it for years on the sideline; I just haven't got around to it. As such, I can't do a complete compare and contrast. I would argue that due to the respective projects' histories and main users: Ogre3D has a more videogame leaning; OSG a more simulation industry leaning. But, neither is tethered to that arena.

    For example, say I had:
    A simulation heavy with ragdoll/people: I would go with Ogre3D.
    A simulation having to use a terrapage file: Pretty much would have to go OSG.

    Crossplatform

    I can't speak for the Linux side of Ogre3D. But, the main developer (Robert Osfield) uses Linux/Macs for all his stuff. CMake is what is used to compile the code. Or just use apt-get to try them both out.

    Performance

    I would wager the both would get good performance given the proper tweaks (again, what is rendered... bsp files, octtrees, high flying sim?). And OS used might matter on them.

    Visual Looks

    You can't get any engine and think it will look good without having good models/terrain and shaders. There probably is better support for different techniques between the two, but it would have to a specific example to get an accurate comparison.

    Scene Management

    When it comes to this section, OSG is very clean and intuitive. Traversing the scene, finding nodes, changing states on subgraphs, all very easy to do.

    Scripting

    You didn't mention this, but I thought I would throw it in. I would go Ogre3D here. OSG requires a 3rdParty or custom plugin. And, Irrlicht doesn't support it at all.


    Now that you read my opinion, like you needed another one of those, this site (Devmaster) is great for others looking. Although, it's short on details.

    ps - There is something of a hybrid (OSG based): that is Delta3D. It is also well supported and updated. And there is probably an Ogre3D derivative that is more simulation like :).