The Open Scene Graph (OSG) is an Open Source (LGPL), Standard C++, OpenGL based scene graph for cross platform 3D real-time visualisation. The OSG is simply a scene graph and by design does not attempt to encompass application frame works and user interface, the design is kept focused on the issues of representing a 3D scene and rendering it in real-time. The OSG currently supports Linux, IRIX, Windows and FreeBSD platforms with the potential of support for further platforms. A Mac port is already underway.
The OSG is composed of a core scene graph library (osg) which is the basis for all osg apps, an optional scene graph utility library (osgUtil) which can be used for higher level functionality such cullers and renderers and a database utility library (osgDB) coupled with a set of plug-ins (osgPlugins) which are dynamically loaded by the osgDB library to support the reading and writing of file formats or node toolkits. Support for rendering of true type fonts is supplied by the osgText library, this is optional, you only need to compile it if you require font rendering.
There are also support libraries such as osgGLUT for bringing up a basic UI, however this is not the focus of the OSG. For more sophisticated user interfaces it is recommended to integrate the OSG graphics with a fully fledge UI toolkit, this has already been done by users for most of the leading UI toolkits, see the bazaar section on the http://www.openscenegraph.org/download for examples of SDL,QT,FLTK,MFX and WX viewers.
For the purpose of demonstating the functionality of the osg, ten demo apps are provided, sgv (a scene graph viewer), osgconv (a command line utility for converted multiple input files into a native .osg target file), hangglide (a flight simulation demo over small hang gliding site), osgcube (a very simple demo of an animated cube) and osgreflect (a demo of how planar reflections can be achieved), osgtexture (a demo of some of the various texture modes that the OSG supports), osgimpostor (a demo of impostors in action) and osgviews (a demo of using mulitple viewports on the same or multiple scenes). Finally there is the osgtext demo which illustrates the different types of font rendering support by the osgText library.
This release is a ALPHA version, and is under continuous development with the API and features subject to change. Although this disclaimer sounds severe you'll probably find the OSG pretty competitive feature and maturity wise, even with well established commericial scene graphs. If you plan to use the OSG then please join the mailing list and provide us with feedback on how you're getting on or the problems that you come across. This helps keep the OSG development going in the right direction and ensures the problems are fixed as early on in the development as possible.
For instructions of how to compile, install the osg libraries and to run the demos please read the INSTALL file.
Robert Osfield.
robert@openscenegraph.com.
Feburaru 2002.
The OSG's web site is http://www.openscenegraph.org/
The OSG's mailing list and mirror of downloads can be accessed at
source forge - http://sourceforge.net/projects/openscenegraph
Bugs, patches, queries can be sent to the robert@openscenegraph.com or to the mailing list.
Patches are best sent as complete files, as tarball if numerous file changes have been made.
README text bare bones readme file.
INSTALL text file containing guide of how to get the OSG compiling, and running the demos.
COPYING text file containing the details of the OSG's Open Source LGPL license.
AUTHORS text file containing names of contributors to the osg.
NEWS text file listing coarse grained changes between releases.
ChangeLog text file listing fine grained changes between releases.
TODO text file listing left to implement/extend/rewrite.
FAQ text file listing Frequently asked questions.
Makefile Unix makefile.
index.html This file!
doc/ Documentation directory
index.html Documentation index
osg/ Scene graph reference guide.
osgUtil/ Scene graph utilities reference guide.
osgDB/ Scene graph database utilities reference guide.
osgText/ Scene graph text reference guide.
osgGLUT/ Simple GLUT based viewer base classes reference guide.
include/ External includes (i.e. files which would be installed in /usr/include)
include/osg/ The OSG library header files.
include/osgUtil/ The OSG Util library header files.
include/osgDB/ The OSG Database library header files.
include/osgText/ The OSG text library header files.
include/osgGLUT/ The OSG GLUT utiltiy library header files.
src/ source files (including internal includes)
src/osg The OSG library source files.
Contains all core osg classes, including reader/writer support for
the .osg ascii format, and sgi's rgb image format.src/osgUtil The OSG utility library source files.
Contains useful utility classes such as for setting
up and rendering/draw.src/osgDB The OSG database utility library source files.
Contains useful utility classes such as for reading
and writing 3D databases and image files.src/osgText The OSG text library source files.
Contains true type font rendering classes.src/osgGLUT The OSG GLUT library source files.
Contains basic GLUT viewer base classes used by
demo programs to bring up window and provide keyboard
and mouse interaction.src/osgPlugins/ Import/Export/Node kit plug-ins to the OSG.
osg/ .osg native ASCII reader/write plugin.
flt/ .flt Open Flight reader plugin.
lib3ds/ .3ds Auto Studio Maxx reader plugin.
lwo/ .lwo Light Wave binary (.lwo,.lw & .geo) reader plugin.
obj/ .obj Alias Wavefront reader plugin.
pfb/ .pfb (and others) Performer reader and writer plugin.
dw/ .dw Design Workshop reader plugin.
rgb/ .rgb RGB image file format reader plugin.
png/ .png PNG image file format reader plugin.
gif/ .gif GIF image file format reader plugin.
jpeg/ .jpg JPEG image file format reader plugin.
pic/ .pic PIC image file format reader plugin.
tga/ .tga TGA image file format reader plugin.
tiff/ .tif TIFF image file format reader plugin.src/Demos/ sgv/ A basic scene graph viewer for the OSG which is loads .osg files and above formats.
osgconv/ A program which reads input files into a single scene graph and outputs the results.
hangglide/ A program which of creates a flying site and allows users to fly over the scene.
osgtexture/ A simple program which demonstrates how to use various textures modes.
osgcube/ A basic animation of an oscillating cube.
osgreflect/ A demonstration of multi-pass stencil buffer based planar reflections.
osgimpostor/ A basic demo to show how to use the osg::Impostor node.
osgviews/ A demo of multiple views of the same or multiple scenes.
wxsgv/ A demo of wxWindows viewer integrated with the OSG.
wxsgv/ A demo of true type fonts support provided by osgText.
lib/
The local repository for the OSG library and plugins (files to be
installed in /usr/lib/ or /usr/local/lib)
lib/osgPlugins/ The local repository for the OSG plugins (files to be installed in /usr/lib/osgPlugins or /usr/local/lib/osgPlugins)
bin/ The local repository for the OSG binary files (files to be installed in /usr/bin or /usr/local/bin)
Make/ Unix platform specific make rules and dependencies.
VisualStudio/ MS VisualC++ 6.0 Make/Workspace files for Windows.
Metrowerks/ CodeWarroir's Make/Workspace files for Mac.
dist/
Distribution make files for RedHat Linux and IRIX.
.