Comparing OpenSG and OpenSceneGraph
This page tries to give an exhaustive point-by-point comparison of OpenSG's and OpenSceneGraph's (including OpenThreads and OpenProducer) features. It is split into logical pieces to keep it more manageable, and to have a natural spot for explanations, as not everything can really be described by a check mark.
The comparison is given for OpenSG version 1.8 (i.e. the current CVS head)
- Fundamentals
- OpenGL Support
- Multi-Threading
- Clustering
- Node Types
- I/O
- Windows/Viewports
- Advanced Techniques
- Extensions
- 3rd Party tools
Fundamentals
| 1.8 | 2.0 | OSG | |
| Vector library | (./) | (./) | (./)1 |
| Reflective Core | (./) | (./) | (./) |
- 1
- Support provided through an OSG introspection plugin.
OpenGL Support
| 1.8 | 2.0 | OSG | |
| Single Textures | (./) | (./) | (./) |
| Multi Textures | (./) | (./) | (./) |
| ARB Shaders | (./) | (./) | (./) |
| GLSL Shaders | (./) | (./) | (./) |
Multi-Threading
Clustering
| 1.8 | 2.0 | OSG | |
| Cluster possible | (./) | (./) | {X}1 |
| "Simple" clustering | (./)2 | (./)2 | {X} |
| Sort-First Rendering | (./) | (./) | {X} |
| Sort-Last Rendering | (./) | (./) | {X} |
- 1
- The distribution contains an example on how to do clustering, but the system itself doesn't give any support for it.
- 2
- Because of OpenSG's use of changelists, clustering is supported nearly automatically and is very simple to setup. See the cluster examples in the documentation.
Node Types
I/O
External formats supported in the released packages, not counting externally provided loaders).
* Split into image/scene/archive?
* Many of these format names where pasted from OpenSceneGraph's plugin directoy. I'm not sure all names/extensions are correct. /ML
Those types listed supported by OpenSG 1.8 and not 2.0 will be be ported into the 2.0 release.
| 1.8 | 2.0 | OSG | Comment | |
| Model Formats | ||||
| 3dc | {X} | {X} | (./) | Point cloud data |
| 3ds | (./) | (./) | (./) | 3D Studio 3.x/4.x (Writable and readable by 3D Studio Max) |
| ac | {X} | {X} | (./) | AC3D scene |
| arcinfo | (./)3 | {X} | {X} | ARCInfo scene |
| bsp | {X} | {X} | (./) | Quake Data ?? |
| bpoly | (./)3 | {X} | {X} | Side Effects Software PRISMS binary |
| collada | {X} | (./) | (./) | Collada scene |
| csb | (./)3 | {X} | {X} | SGI Optimizer binary format |
| dae | {X} | {X} | (./) | Collada digital asset exchange |
| dat | (./) | (./) | {X} | |
| directx (.x) | {X} | {X} | (./) | DirectX model file |
| dw | {X} | {X} | (./) | Designer Workshop scene |
| dxf | (./) | {X} | (./) | AutoCAD drawing (2D or 3D model) |
| exr | (./) | {X} | {X} | OpenEXR scene |
| flt | (./)3 | {X} | (./) | OpenFlight scene |
| gdal | {X} | {X} | (./) | http://gdal.org/ |
| geo | {X} | {X} | (./) | Carbon Graphics GEO |
| iv | (./)34 | {X} | (./) | Inventor scene |
| ive | {X} | {X} | (./) | OpenSceneGraph native binary format |
| lwo | {X} | {X} | (./) | Lightwave object |
| lws | {X} | {X} | (./) | Lightwave scene |
| md2 | {X} | {X} | (./) | Quake 2 model |
| mtd | (./) | (./) | (./) | |
| nff | (./)3 | {X} | {X} | Eric Haines' ray tracing test data format |
| obj | (./) | (./) | (./) | Alias|Wavefront scene (predecessor to Maya) |
| off | (./) | {X} | {X} | Object File Format |
| osb | (./) | (./) | {X} | OpenSG native binary format |
| pfb | (./)3 | {X} | (./) | Performer scene |
| ply | (./) | {X} | {X} | Stanford PLY format |
| shp | {X} | {X} | (./) | ESRI Shapefile |
| slp | (./) | {X} | {X} | |
| stl | (./) | (./) | (./) | stereolithography CAD |
| txp | {X} | {X} | (./) | TerraPage terrain |
| vtk | {X} | (./) | {X} | Visualization Toolkit file |
| vrml (.wrl) | (./) | (./) | (./) | VRML scene |
| Image Formats | ||||
| bmp | (./) | (./) | (./) | Windows Bitmap image |
| dds | (./) | (./) | (./) | DirectDraw? surface |
| exr | (./) | {X} | {X} | OpenEXR image |
| gif | (./) | (./) | (./) | GIF image |
| hdr | (./) | (./) | (./) | HDRI image (OpenEXR format) |
| jp2 | (./) | {X} | (./) | Jasper (JPEG 2000) |
| jpeg | (./) | (./) | (./) | JPEG image |
| mng | (./) | (./) | (./) | Multiple-image Network Graphics |
| nrrd | (./) | {X} | {X} | |
| pic | {X} | {X} | (./) | SGI picture image format |
| png | (./) | (./) | (./) | Portable Network Graphics |
| pnm | (./) | (./) | (./) | Portable AnyMap (variants PPM, PGM, PBM) |
| psd | (./) | {X} | {X} | PhotoShop image |
| qt | {X} | {X} | (./) | QuickTime image only (no movie) |
| raw | (./) | {X} | {X} | Raw image data |
| rgb | {X} | {X} | (./) | SGI rgb image format |
| sgi | (./) | {X} | {X} | SGI rgb image format |
| tga | (./) | (./) | (./) | TARGA image |
| tif | (./) | (./) | (./) | Tagged Image File Format image |
| xine | {X} | {X} | (./) | |
| Meta loaders | ||||
| rot, scale, trans | {X} | {X} | (./) | OpenSceneGraph loaders for modifying base transformation. |
| net | {X} | {X} | (./) | OpenSceneGraph metaloader for reading data over network |
| normals | {X} | {X} | (./) | Adds normals to file on load |
| tgz | {X} | {X} | (./)2 | TAR-GZipped archive |
| zip | {X} | {X} | (./)2 | ZIP archive |
- 2
- OpenSceneGraph uses external programs (unzip and tar) to support these archive formats.
- 3
- Can be loaded using the OpenGL Performer converter from Contrib, needs installed Performer libraries
- 4
- Can be loaded using the Open Inventor converter from Contrib, needs installed Open Inventor libraries
Performer loader source is in $PFROOT/usr/share/Performer/src/lib/libpfdb if performer-devel is installed
OSG loader source can be found here: http://openscenegraph.org/viewcvs/src/osgPlugins/
OpenSG Loader source can be found here: http://www.opensg.org/browser/trunk/Source/System/FileIO
It would be nice to have a poll somewhere about what the most important formats are to add to OpenSG
Windows/Viewports
Advanced Techniques
| 1.8 | 2.0 | OSG | |
| Occlusion Culling | (./) | (./) | {X} |
| Small-feature culling | (./) | (./) | (./) |
| Imposters | {X} | {X} | (./) |
| CLOD Terrain | {X} | {X} | (./) |
| ShadowMaps? | (./) | (./) | {X} |
