
Engine Details
| OpenSceneGraph |
1 |
Show Details
Web page
Email author
Read Reviews
Review or Rate this Engine |
Rating:
(9 votes) |
Edit
|
| OpenSceneGraph is an portable, high level graphics toolkit for the development of high peformance graphics applications such as flight simulators, games, virtual reality or scientific visualization. Providing an object orientated framework on top of OpenGL, it frees the developer from implementing and optimizing low level graphics calls, and provide many additional utilities for rapid development of graphics applications. |
| Author |
Robert Osfield and Don Burns |
|
|
| Graphics API |
OpenGL |
Operating Systems |
Windows, Linux, MacOS, Solaris, SunOS, FreeBSD, Irix, Playstation |
| Programming Language |
C/C++ |
Status |
Productive/Stable |
| Documentation |
Yes |
|
|
| Features |
|
General Features |
Object-Oriented Design, Plug-in Architecture, Save/Load System:
| • |
Combining lessons learned from established scene graphs like Performer and Open Inventor, with modern software engineering methods like Design Patterns, along with a great deal of feedback early on in the development cycle, it has been possible to design a library that is clean and extensible. |
|
|
Scripting |
| • |
Lua scripting provided via OsgVortex plugin. |
| • |
Supports also python through pyOSG external plugin |
|
|
Built-in Editors |
osgedit: allows editing some of the features in scenegraph |
|
Physics |
Basic Physics, Collision Detection, Rigid Body:
| • |
Integrates with OsgVortex physics plugin |
|
|
Lighting |
Per-vertex, Anisotropic: |
|
Shadows |
Projected planar, Shadow Volume:
| • |
osgShadow nodekit (external plugin) adds stencil shadow volume rendering. |
|
|
Texturing |
Basic, Multi-texturing, Mipmapping, Projected:
| • |
Texture rectangles (non power of 2) and point sprites |
| • |
Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds (include compressed mip mapped imagery), .tga and qucktime (under OSX). |
| • |
A whole set of high quality, anti-aliased fonts can also be loaded via the freetype plugin. |
|
|
Shaders |
Vertex, Pixel, High Level:
| • |
NVidia's vertex, fragment, combiner etc extension, NVidia's Cg shader language (via plugin), and OpenGL2 shaders |
|
|
Scene Management |
General, Occlusion Culling, LOD:
| • |
Supports view frustum culling, occlusion culling, small feature culling, Level Of Detail (LOD) nodes, state sorting, vertex arrays and display lists as part of the core scene graph. |
|
|
Animation |
Keyframe Animation, Skeletal Animation, Animation Blending:
| • |
Animation Blending through OsgCal or ReplicantBody external plugins |
|
|
Meshes |
Mesh Loading, Skinning:
| • |
Supports skining through both OsgCal (cal3D plugin) and ReplicantBody (both external plugins). |
| • |
3D Database loaders include OpenFlight (.flt), TerraPage (.txp) including multi-threading support, LightWave (.lwo), Alias Wavefront (.obj), Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb), Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the native .osg ASCII format. |
|
|
Special Effects |
Environment Mapping, Billboarding, Particle System, Mirror:
| • |
particle system provided by external plugin |
|
|
Terrain |
Rendering, CLOD:
| • |
Advanced terrain engine via Demeter Terrain Engine plugin which integrates with OpenSceneGraph. |
|
|
Sound & Video |
2D Sound, 3D Sound, Streaming Sound:
| • |
osgAL plugin provides 2D and 3D sound along with streaming through OpenAL |
|
|
Rendering |
Fixed-function, Render-to-Texture: |
|
| Features: |
 |
Ease of Use: |
 |
| Stability: |
 |
Support: |
 |
| Date Added |
Wed, 4 Aug 2004 |
Last Updated |
Mon, 26 Jun 2006 |
|
There are currently 7 reviews for this engine
|
|
| License Name |
Price |
Source Code |
Comments |
| LGPL |
Free |
Yes |
|
|
Screenshots:
Member Reviews |
 |
NOTE: The ratings and reviews below reflect the opinions of their respective authors and as such, do not reflect the opinions of DevMaster.net or its staff.
The reviews are not moderated and some are completely inaccurate. Therefore, most reviews should be taken with a grain of salt. If you find any inaccurate or inappropriate reviews, let us know by stating in detail why you think the review should be removed and any links/documents that support your contention.
| Decent Engine |
It does what it says it does... Good product. |
|
Overall Grade: |
 |
| Features: |
 |
| Ease of Use: |
 |
| Stability: |
 |
| Support: |
 |
|
|
| |
| Excellent |
This is by far the best graphics engine I have seen. I love Ogre, its performance and quality are very promising. However, OpenSceneGraph is having better quality on class hierarchy because of the SceneGraph design is very advance. OpenSceneGraph is a very high performance game/rendering engine because of the culling. Besides, the state of art SceneGraph architecture is giving users breath-taking benefits such as minimum state changing, optimized for rendering performance and flexibility on scene modifications.
Comparing to Ogre, OpenSceneGraph is easier to use for developers. I have a glance in the Ogre source code and found that their class design are a bit too complicated to make its engine compatible to many different platforms including GL and DX, Windows and Linux. While OpenSceneGraph is using OpenGL as the rendering engine, it is optimized for specific API and it does have less compatibility code overhead.
I love it...good job OpenSceneGraph!!! |
|
Overall Grade: |
 |
| Features: |
 |
| Ease of Use: |
 |
| Stability: |
 |
| Support: |
 |
|
|
| |
| Nice and easy once you get going |
OSG is an absolute dream. But it's a nightmare to set up, and the documentation is vague and could possibly be good if only one of the developers would write out a good page or two explaining a couple of basic things.
As far as what OSG can do visually, you can't dispute it. Being focused on OpenGL is a huge plus. You can't dispute that OpenGL will run 10 - 20 frames faster than Direct-X on an nVidia graphics card.
Not trying to be God helps OSG out too. Ogre does anything and everything, but it does none of it well without editing. Edit the source though, and it's tough to get it to compile. Irrlicht has the same problem except twice as often. And Nebula 2, well, I can't use the words to describe Nebula here, but I'm sure random spattle will get my point across: Nebula 2 is straight lsjdfoaksjdf lksjadfkasjdflk lkasjdfklajsdf lkajsdfklaj.
Take a look at Open Scene Graph, and give it time to grow on you. You'll find that it will love you more than you will love it. |
|
Overall Grade: |
 |
| Features: |
 |
| Ease of Use: |
 |
| Stability: |
 |
| Support: |
 |
|
|
| |
| This is venting |
Okay, I'm definately venting my frustration with the OSG community which has utterly let me down with their lack of support. But, I feel like my problems with this engine are indeed legitimate and will be shared by many others.
OpenSceneGraph has terrible, terrible documentation. The API is mearly function signatures and there really is no all inclusive programmer reference with, say, a table of contents, index, and a beginning and an end. What they have is a collection of random tutorials (some pretty good, some useless), a huge library of examples, and a mailing list. The mailing list is full of a bunch of people that are very active, very smart and entirely uninterested in questions that don't "challenge and intrigue" them. My project included drawing approximately a thousand quads on the screen, that would shuffle around independent of one another. In order to do this I had to touch every vertex of every quad every frame. Straight OpenGL can handle this at nearly 100 fps. With OSG I could barely clear 30 fps. This is the question I posted to the mailing list - I would have enjoyed figuring this out for myself - but how the heck can I do any research on the subject without any sort of documentation?!? The responses I received ranged from "You didn't ask the question correctly" to "I don't have time to help you figure out your performance problem" to "Try [x], [y] and [z]". All responses were (I'm sure) completely honest, but, in the end, not helpful. So about three weeks ago I started reading through the code (good ol' open source) and today I'm as frustrated with this engine as ever.
OSG has many many features and what features I have managed to figure out (again, on my own) have worked flawlessly. Before I had to start manipulating individual vertices I had no problems with the frame rate. From what I see, it's a great engine - just good luck trying to figure it out! There is, as I said earlier, a huge library of example projects that come with the source. These have been a saving grace for me, but, in the instance when I have a specific issue that I need to resolve, they have still fallen short.
My final thoughts:
If you are a veteran OpenGL programmer and can figure a problem like mine out by looking at the code for a graphics engine ("scene graph", whatever) then OSG may be a good fit. But if you are like me and don't necessarily enjoy "hacking" an open source project in order to divine its secrets to make it work for you, then you may not be interested in this one. Pretty easy to install on Windows, do NOT attempt to install it on Linux without APT or some other installation and dependancy checking utility (these are words born of experience, my fine fellows).
Edit: I don't know what the following reviewer is talking about when he mentions the so called "API Documentation". I'm trying to figure out the ImageStream object right now and the only information the so called "API Documentation" provides is function signatures. I can't believe someone would speak so highly of such pitifully useless information.
Another edit: I hate OpenSceneGraph so very much. So very very much. What a terrible engine. Irrlicht is so much better, easier and more friendly to the casual user. This is just junk. |
|
Overall Grade: |
 |
| Features: |
 |
| Ease of Use: |
 |
| Stability: |
 |
| Support: |
 |
|
|
| |
| Clean and professional |
This library impresses with the cleanliness of its hierarchy, completeness of its features, and abstractions/class designs that Just Make Sense. I don't know too much about Design Patterns, but I imagine a lot of what I vaguely perceive as "elegant" falls out of the main authors' avowed full embrace of such mature software engineering methods. The scene graph traversers and behavior specifiers are particularly elegant.
I also like that OSG provides various levels of integration with the windowing system. If you just want a quickie visualizer, with full low-level control of the renders (like with raw opengl), you can have a non-interactive window up in minutes. If you want the rendering in a separate thread, there's a slightly more complicated class for that. If you want full interactivity, there's a class for that too. In other words, OSG really is a general graphics engine that is also well-suited to game development, as opposed to many of the other libraries on this list, which were designed with an exclusive focus on game dev. For example, OGRE has added lots of cruft that might be useful in large-scale game projects, but as a result you need scads of boilerplate code just to get started with an object in a window. On the other end of the spectrum, Irrlicht has a few functions and classes that streamline getting started, but underneath those prepackaged functions was alot of hackishness. The moment you go slightly under the hood, you start spending alot of time fighting or correcting this messiness. OSG has a simple interface, but doesn't hide anything to those who want to get under it. And the machinery underneath is well-coded.
Initially, there was some awkwardness since I had to "learn" (it takes 3 minutes) about smart pointers to get started, but after that, the examples and the API documentation pretty much give you what you need to take off and keep running. This is a good thing, since there's there aren't any friendly Irrlicht-style tutorials!
From following the OSG mailing list, I hear they've recently added introspection features to enable easier binding to scripting languages. I hope they regain Python support soon. |
|
Overall Grade: |
 |
| Features: |
 |
| Ease of Use: |
 |
| Stability: |
 |
| Support: |
 |
|
|
| |
|
|
|
|