wiki:Comparison

  1. What makes OpenSG unique?
  2. What's the difference between a scene graph and a game engine?
  3. What's the difference between OpenSG and OpenSceneGraph?
  4. What's the difference between OpenSG and Performer?

What makes OpenSG unique?

All scenegraphs are designed to render a scene. Because of this about 80% of what they do is common between most scene graphs. Most scene graphs can load geometry, put it in the graph, and render it. Most scene graph have nodes such as group, geometry, etc. What makes them interesting is the 20% that is different. In the case of OpenSG, this is primarily its extensibility, multi-thread safety and clustering capabilities (details here). If you need any of those, OpenSG is your scenegraph of choice. If you don't need them, OpenSG can still be your scenegraph of choice, but for more general reasons. ;)

If you're here, chances are you're thinking about using OpenSG or Open Scenegraph (because those are the two most common choices these days). Because the question which one to use comes up so often, we have a separate point about that below.

What's the difference between a scene graph and a game engine?

Game engines in general are more specialized than scenegraphs. They are designed to create certain kinds of applications (i.e. games), and most of them are even specialized to certain genres of games (you won't use a racer engine for a sports game). Scene graphs are much more general. They are designed to accomodate a wide variety of applications, and can adapt to new application types much more easily. They also use the hierarchical nature of the graph much more heavily than game engines, and have objects at a lower level. Game engine classes are most often high-level objects like game entities, while most scene graph nodes are lower level and the combination of nodes in a hierarchy is what makes them useful.

In addition to that scenegraphs focus on graphics. They sometimes include other things like sound or animation, but they're not a complete application system like a game engine. In most cases scenegraphs are combined with GUI tools like QT or Fox, or with a general Virtual Reality framework like VRJuggler, to build a full application.

What's the difference between OpenSG and OpenSceneGraph?

Both of them are modern scenegraphs that grew out of the mess that happened in the second half of the 90-ies and ended in the demise of SGI and Microsoft's Fahrenheit project. They both learned a lot from older systems, and while OpenScenegraph leaned heavily on the Performer side of things in the beginning (the initial force behind it was the desire to have a certain Performer application running on Windows), OpenSG leaned more on the Fahrenheit side of taking scenegraphs to the next level and making them more general and flexible. Both of them have developed from there in the last few years.

What's the difference between OpenSG and Performer?

Performer is one of the grandaddies of scenegraph (the other is Inventor). It was a groundbreaking piece of software that introduced a lot of concepts and ideas on how to make graphics hardware usable and fast, especially in terms of multi-threading and graph optimizations (see the SIGGRAPH 94 paper for a description or this one for design overview and rationale).

But like many other systems its primary weakness was the proprietary nature that bound it to the politics of a company whose busniness was selling hardware, not software, and which made it fall behind the development curve. These days, in your self-interest, you should be using an Open Source system like OpenSG.

Last modified 5 years ago Last modified on 10/04/11 14:19:57