Suggestion to which C++ 3D engine is better between Ogre, Irrlicht and OpenSceneGraph [closed]
Asked Answered
A

6

31

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.

Agueda answered 24/3, 2011 at 12:57 Comment(0)
H
21

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

Hyperaesthesia answered 16/6, 2011 at 3:6 Comment(4)
thanks for the answer. Could you tell me something about video codec support?Agueda
@0verbose - It's beyond late to respond probably (I don't check the site much :( ), but I guess it depends on what you doing. --- If it's "whole scene to video", I've never done that. I mean, I've recorded the video with FRAPs, but that's probably not what you are looking for. --- If it is a Texture-Video thing (e.g. computer screen in game running prerecorded video), I'm sure it's doable for any renderer/engine. I can only really speak for OSG though, and for info on that it's: the osgmovie example.Hyperaesthesia
What OpenSceneGraph documentation do you use? In my (limited) experience, the OSG documentation is quite lacking. I haven't been able to find very much information at all about how RenderBins work in OSG, for example.Wakashan
Did you actually use the OSG documentation at all before claiming that the framework is well documented?Wakashan
D
8

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.

Denesedengue answered 4/5, 2011 at 22:33 Comment(1)
"Irrlicht is a full blown game engine." Come on... Are you serious?Vex
E
3

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

Earle answered 3/5, 2011 at 8:9 Comment(2)
could you expand a bit your sentence : "Ogre source code has a lot of quality" ?Agueda
You can read the code yourself bitbucket.org/sinbad/ogre/src/f02026fb493f. The classes are well designed and decoupled (not easy in a 3d engine). Irrlitch (irrlicht.svn.sourceforge.net/viewvc/irrlicht/trunk/source/…) are less decoupled. And it's easer to write a plugin for Ogre.Earle
E
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/

Errol answered 5/5, 2011 at 9:38 Comment(1)
A flaw in the google trends example is you're capturing all uses of ogre. Try either 'Ogre 3d' or 'ogre3d' and your get a more comparable result. Still approximately 2x the competition if you add them together though.Vlaminck
B
1

Crystal Space also looks good.

Ballade answered 5/5, 2011 at 5:41 Comment(1)
Thanks for the suggestion. I didn't know it. But what about video codec? Does it have an integrated support for them?Agueda
V
1

Torque 3D seems way more mature than Ogre3D, basically it's a full blown Game Engine (MIT License). Development in C++ / Visual Studio is possible (tested some months ago), but it also has an embedded scripting language.

Vincennes answered 24/6, 2015 at 1:14 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.