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

23,875

Solution 1

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 :).

Solution 2

If you want to select an engine or any middle ware you need to clearly define what you want to be able to do. You say you are not making a game and you need video codec support. So it sounds like you want 2D/3D, audio, and video playback written with C++.

For 2D/3D ogre is an excellent library. Its been around for a long time, and is well tested, but orge is a graphics rendering engine and not a game engine, though there are third party libraries to add other support. This is an MIT license, very open includes comercial.

For video playback ( and a lot more ) you can look for libraries such as FFmpeg Has a LGPL license, so no static linking on comercial apps.

Irrlicht is a full blown game engine. This maybe useful, but may not. You may have to change your project to match of the engine works. This uses a copy of the zlib license, which is open for comercial usage.

Which more info about your project its hard to give a good recommendation. Hope this helps.

Solution 3

Ogre is most popular (due to Google Trends) of those that you've figured out, so you can count on strong community support.

Moreover, you should ask on https://gamedev.stackexchange.com/

Solution 4

I think it is a personal choice. I prefer Ogre over Irrlitch (poor API) or OpenSceneGraph (poor comunity). The Ogre source code has a lot of quality and it is used by a lot of comercial games.

It doesn't support video but you can use third party libraries like Ogre3D Video.

If you have on your mind a comercial project consider Unity 3d (the paid version not the free).

All the 3d engines are very similiar. The main difference are how shader system works. Ogre has a nice and powerful script system to write shaders. Ogre it's very professional and well documented (has a lot of useful examples and a nice community).

Solution 5

Crystal Space also looks good.

Share:
23,875
Heisenbug
Author by

Heisenbug

Updated on June 25, 2020

Comments

  • Heisenbug
    Heisenbug about 4 years

    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.