Updated links to mailing list

This commit is contained in:
Robert Osfield 2003-11-25 09:23:04 +00:00
parent 78a0fd5a16
commit c7b96d18b7

View File

@ -1,344 +1,460 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta content="text/html; charset=iso-8859-1"
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]"> http-equiv="Content-Type">
<title>Introduction to the OpenSceneGraph</title> <meta
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]"
name="GENERATOR">
<title>Introduction to the OpenSceneGraph</title>
</head> </head>
<body bgcolor="#FFFFFF"> <body bgcolor="#ffffff">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" BORDER=0> <img border="0" src="images/OpenSceneGraphBanner_Distribution.jpg">
<table> <table>
<tr> <tbody>
<td><a href="index.html">Index</a></td> <tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</a></td> <td><a href="introduction.html">Introduction</a></td>
<td><a href="contents.html">Contents</a></td>
<td><a href="contents.html">Contents</a></td> <td><a href="install.html">Install</a></td>
<td><a href="dependencies.html">Dependencies</a></td>
<td><a href="install.html">Install</a></td> <td><a href="examples.html">examples</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="dependencies.html">Dependencies</a></td> <td><a href="osgviewer.html">Viewer</a></td>
<td><a href="stereo.html">Stereo</a></td>
<td><a href="examples.html">examples</a></td> <td><a href="plan.html">Plan</a></td>
<td><a href="documentation.html">Reference Guides</a></td>
<td><a href="data.html">Data</a></td> </tr>
</tbody>
<td><a href="osgviewer.html">Viewer</a></td>
<td><a href="stereo.html">Stereo</a></td>
<td><a href="plan.html">Plan</a></td>
<td><a href="documentation.html">Reference Guides</a></td>
</tr>
</table> </table>
<h2> <h2>
<u>Introduction to the OpenSceneGraph</u></h2> <u>Introduction to the OpenSceneGraph</u></h2>
<p>The OpenSceneGraph is an portable, high level graphics toolkit for
<p>The OpenSceneGraph is an portable, high level graphics toolkit for the development of high peformance the development of high peformance
graphics applications such as flight simulators, games, virtual reality or scientific visualization. graphics applications such as flight simulators, games, virtual reality
Providing an object orientated framework on top of OpenGL, it frees the developer or scientific visualization. Providing an object orientated framework
from implementing and optimizing low level graphics calls, and provide many additional utilities for on top of OpenGL, it frees the developer
rapid development of graphics applications. from implementing and optimizing low level graphics calls, and provide
</p> many additional utilities for rapid development of graphics
applications. </p>
<p> <p>
The project was started as a hobby by Don Burns in 1998, as means of porting a hang gliding simulator written on top of the The project was started as a hobby by Don Burns in 1998, as means of
Performer scene graph running on IRIX to what was then a humble Linux PC. In 1999, Robert Osfield began helping out with porting a hang gliding simulator written on top of the Performer scene
the simulator development and ported the scene graph element to Windows. In september 1999 the source code was open sourced, graph running on IRIX to what was then a humble Linux PC. In 1999,
and the openscenegraph.org website was born, with Robert taking over as project lead and Don remaining focused on the hang Robert Osfield began helping out with the simulator development and
gliding simulator. ported the scene graph element to Windows. In september 1999 the source
code was open sourced, and the openscenegraph.org website was born,
<p> In April 2001, in response to growing interest in the project around the world, Robert went fulltime with Robert taking over as project lead and Don remaining focused on
on the project, setting up <a href="http://www.openscenegraph.com">OpenSceneGraph Professional Services</a> providing commericial support, the hang gliding simulator.
consultancy services and training. At the end of 2001 Don also formed his own company <A HREF="http://www.andesengineering.com">Andes Computer Engineering</a> </p>
and participates in the development and support of OpenSceneGraph as well as complimentary projects like <p> In April 2001, in response to growing interest in the project
<A HREF="http://www.andesengineering.com/Producer">OpenProducer</A> and <A HREF="http://www.andesengineering.com/BlueMarbleViewer">BlueMarbleViewer</A>. around the world, Robert went fulltime on the project, setting up <a
href="http://www.openscenegraph.com">OpenSceneGraph Professional
Services</a> providing commericial support, consultancy services and
<h3> training. At the end of 2001 Don also formed his own company <a
<u>What is a Scene Graph?</u></h3> href="http://www.andesengineering.com">Andes Computer Engineering</a>
and participates in the development and support of OpenSceneGraph as
well as complimentary projects like <a
href="http://www.andesengineering.com/Producer">OpenProducer</a> and <a
href="http://www.andesengineering.com/BlueMarbleViewer">BlueMarbleViewer</a>.
</p>
<h3><u>What is a Scene Graph?</u></h3>
Its a tree! Quite simply one the best and most reusable data structures Its a tree! Quite simply one the best and most reusable data structures
invented. Typically drawn schematically with the root at the top, leaves at the invented. Typically drawn schematically with the root at the top,
bottom. It all starts with a top-most root node which encompasses your whole leaves at the
virtual world, be it 2D or 3D. The world is then broken down into a hierarchy bottom. It all starts with a top-most root node which encompasses your
of nodes representing either spatial groupings of objects, settings of the whole
position of objects, animations of objects, or definitions of logical relationships virtual world, be it 2D or 3D. The world is then broken down into a
between objects such as those to manage the various states of a traffic light. hierarchy
of nodes representing either spatial groupings of objects, settings of
the
position of objects, animations of objects, or definitions of logical
relationships
between objects such as those to manage the various states of a traffic
light.
The leaves of the graph represent the physical objects themselves, the The leaves of the graph represent the physical objects themselves, the
drawable geometry and their material properties. drawable geometry and their material properties.
</p> <p></p>
<p>A scene graph isn't a complete game or simulation engine, although it may <p>A scene graph isn't a complete game or simulation engine, although
it may
be one of the main components of such an engine; it's primary focus is be one of the main components of such an engine; it's primary focus is
representation of your 3d worlds, and efficient rendering thereof. Physics models, representation of your 3d worlds, and efficient rendering thereof.
collision detection and audio are left to other development libraries that Physics models,
collision detection and audio are left to other development libraries
that
a user will integrate with. The fact that scene graphs don't typically a user will integrate with. The fact that scene graphs don't typically
integrate all these features is actually a really good thing: it aids interoprability integrate all these features is actually a really good thing: it aids
with clients' own applications and tools and allows it to serve many varied interoprability
with clients' own applications and tools and allows it to serve many
varied
markets from games, visual simulation, virtual reality, markets from games, visual simulation, virtual reality,
scientific and commercial visualization, training through to modeling programs. scientific and commercial visualization, training through to modeling
programs.
</p> </p>
<h3> <h3>
<u>Benefits that Scene Graphs provide</u></h3> <u>Benefits that Scene Graphs provide</u></h3>
The key reasons that many graphics developers uses scene graphs are <i>Performance,
The key reasons that many graphics developers uses scene graphs are <i>Performance, Productivity, Portability and Scalability:</i> Productivity, Portability and Scalability:</i>
<ul> <ul>
<li><b><i>Performance</i></b></li> <li><b><i>Performance</i></b></li>
Scene graphs provide an excellent framework for Scene graphs provide an excellent framework for
maximizing graphics performance. A good scene graph employs two key techniques maximizing graphics performance. A good scene graph employs two key
- culling of the objects that won't be seen on screen, and state sorting techniques
of properties such as textures and materials, so that all similar objects - culling of the objects that won't be seen on screen, and state
are drawn together. Without culling the CPU, buses and GPU will all become sorting
of properties such as textures and materials, so that all similar
objects
are drawn together. Without culling the CPU, buses and GPU will all
become
swamped by many times the amount of data than they actually require to swamped by many times the amount of data than they actually require to
represent your scenes accurately. The hierarchical structure of the scene represent your scenes accurately. The hierarchical structure of the
graph makes this culling process very efficient, for instance a whole city can be culled scene
with just a few operations! Without state sorting, the the buses and GPU graph makes this culling process very efficient, for instance a whole
will thrash between states, stalling the graphics pipeline and destroying graphics city can be culled
throughput. As GPU's get faster and faster, the cost of stalling the graphics pipeline with just a few operations! Without state sorting, the the buses and
GPU
will thrash between states, stalling the graphics pipeline and
destroying graphics
throughput. As GPU's get faster and faster, the cost of stalling the
graphics pipeline
is also going up, so scene graphs are becoming ever more important. is also going up, so scene graphs are becoming ever more important.
<p></p>
<p> <li><b><i>Productivity</i></b></li>
<li><b><i>Productivity</i></b></li>
Scene graphs take away much of the hard work required Scene graphs take away much of the hard work required
to develop high performance graphics applications. The scene graph manages to develop high performance graphics applications. The scene graph
manages
all the graphics for you, reducing what would be thousands of lines of all the graphics for you, reducing what would be thousands of lines of
OpenGL down to a few simple calls. Furthermore, one of most powerful concepts OpenGL down to a few simple calls. Furthermore, one of most powerful
concepts
in Object Oriented programming is that of object composition, enshrined in Object Oriented programming is that of object composition, enshrined
in the <i>Composite Design Pattern</i>, which fits the scene graph tree structure in the <i>Composite Design Pattern</i>, which fits the scene graph
tree structure
perfectly and makes it a highly flexible and reusable design - in real perfectly and makes it a highly flexible and reusable design - in real
terms this means that it can be easily adapted to solve your problems. terms this means that it can be easily adapted to solve your problems.
Scene graphs also often come additional utility libraries which range from Scene graphs also often come additional utility libraries which range
helping users set up and manage graphics windows to importing of 3d models from
and images. All this together allows the user to achieve a great deal with helping users set up and manage graphics windows to importing of 3d
very little coding. A dozen lines of code can be enough to load your data models
and images. All this together allows the user to achieve a great deal
with
very little coding. A dozen lines of code can be enough to load your
data
and create an interactive viewer! and create an interactive viewer!
<p></p>
<p> <li><b><i>Portability</i></b></li>
<li><b><i>Portability</i></b></li>
Scene graphs encapsulate much of the lower level Scene graphs encapsulate much of the lower level
tasks of rendering graphics and reading and writing data, reducing or even tasks of rendering graphics and reading and writing data, reducing or
eradicating the platform specific coding that you require in your own application. even
eradicating the platform specific coding that you require in your own
application.
If the underlying scene graph is portable then moving from platform to If the underlying scene graph is portable then moving from platform to
platform can be as simple as recompiling your source code. platform can be as simple as recompiling your source code.
<p></p>
<p> <li><b><i>Scalability</i></b></li>
<li><b><i>Scalability</i></b></li>
Along with being able to dynamic manage the complexity Along with being able to dynamic manage the complexity
of scenes automatically to account for differences in graphics performance of scenes automatically to account for differences in graphics
across a range of machines, scene graphs also make it much easier to manage performance
across a range of machines, scene graphs also make it much easier to
manage
complex hardware configurations, such as clusters of graphics machines, complex hardware configurations, such as clusters of graphics machines,
or multiprocessor/multipipe systems such as SGI's Onyx. A good scene graph or multiprocessor/multipipe systems such as SGI's Onyx. A good scene
will allow the developer to concentrate on developing their own application graph
will allow the developer to concentrate on developing their own
application
while the rendering framework of the scene graph handles the different while the rendering framework of the scene graph handles the different
underlying hardware configurations. underlying hardware configurations.
</ul> </ul>
<h3> <h3>
<u>The OpenSceneGraph - <i> a robust, high peformance Open Source scene graph</i></u></h3> <u>The OpenSceneGraph - <i> a robust, high peformance Open Source
With the OpenSceneGraph our goal is make the benefits of scene graph technology scene graph</i></u></h3>
freely available to all, for both commericial and non commericial users. Whilst our scene graph With the OpenSceneGraph our goal is make the benefits of scene graph
technology freely available to all, for both commericial and non
commericial users. Whilst our scene graph
is still in development, it has already gained a respect is still in development, it has already gained a respect
amongst the development community for its high performance, cleanness of amongst the development community for its high performance, cleanness
of
design and portability. Written entirely in Standard C++ and OpenGL, it design and portability. Written entirely in Standard C++ and OpenGL, it
makes full use of the STL and Design Patterns, and leverages the open source makes full use of the STL and Design Patterns, and leverages the open
source
development model to provide a development library that is legacy free development model to provide a development library that is legacy free
and focused on the needs of end users. The OpenSceneGraph delivers on and focused on the needs of end users. The OpenSceneGraph delivers on
the four key benefits of scene graph technology outlined above with the the four key benefits of scene graph technology outlined above with the
following features: following features:
<ul> <ul>
<li><b><i>Performance</i></b></li> <li><b><i>Performance</i></b></li>
Supports view frustum culling, occlusion culling, small feature culling, Supports view frustum culling, occlusion culling, small feature
culling,
Level Of Detail (LOD) nodes, state sorting, vertex arrays and display Level Of Detail (LOD) nodes, state sorting, vertex arrays and display
lists as part of the core scene graph. These together make the OpenSceneGraph lists as part of the core scene graph. These together make the
one of the highest performance scene graph available. User feedback is that OpenSceneGraph
performance matches or surpasses that of much more established scene graphs such one of the highest performance scene graph available. User feedback is
as Performer, VTree, Vega Scene Graph and Java3D! The OpenSceneGraph also supports easy customization that
of the drawing process, which has allowed implementation of Continuous Level performance matches or surpasses that of much more established scene
of Detail (CLOD) meshes on top the scene graph. These allow the visualization graphs such as Performer, VTree, Vega Scene Graph and Java3D! The
of massive terrain databases interactively, examples of this approach can OpenSceneGraph also supports easy customization
of the drawing process, which has allowed implementation of Continuous
Level
of Detail (CLOD) meshes on top the scene graph. These allow the
visualization
of massive terrain databases interactively, examples of this approach
can
be found at Vterrain.org and TerrainEngine.com, both of which integrate be found at Vterrain.org and TerrainEngine.com, both of which integrate
with the OpenSceneGraph. with the OpenSceneGraph.
<p></p>
<p> <li><b><i>Productivity</i></b> </li>
<li><b><i>Productivity</i></b> </li> <p>
<p>
The core scene graph provides encapsulate the majority of OpenGL The core scene graph provides encapsulate the majority of OpenGL
functionality including latest extensions, provides rending optimizations functionality including latest extensions, provides rending
such as culling and sorting, and a whole set of add on libraries which make optimizations
it possible to develop high peformance graphics applications very rapidly. The such as culling and sorting, and a whole set of add on libraries which
application developer is freed to concentrate on content and how that content is make
controlled rather than low level coding. it possible to develop high peformance graphics applications very
</p> rapidly. The application developer is freed to concentrate on content
<p> and how that content is controlled rather than low level coding.
</p>
<p>
Combining lessons learned from established scene graphs like Performer Combining lessons learned from established scene graphs like Performer
and Open Inventor, with modern software engineering methods like Design Patterns, and Open Inventor, with modern software engineering methods like Design
along with a great deal of feedback early on in the development cycle, it has been Patterns, along with a great deal of feedback early on in the
possible to design a library that is clean and extensible. This has made it easy development cycle, it has been possible to design a library that is
for users to adopt to the OpenSceneGraph and to integrate it with their own applications. clean and extensible. This has made it easy for users to adopt to the
</p> OpenSceneGraph and to integrate it with their own applications.
<p> </p>
For reading and writing databases an the database library (osgDB) adds support for a wide <p>
variety of database formats via a extensible dynamic plugin mechansim - the distribution now includes 33 For reading and writing databases an the database library (osgDB) adds
seperate plugins for loading various 3D and Image data formats. 3D Database loaders include OpenFlight (.flt), support for a wide
TerraPage (.txp) including multi-threading support, LightWave (.lwo), Alias Wavefront (.obj), variety of database formats via a extensible dynamic plugin mechansim -
Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb), Quake Character Models (.md2). Direct X (.x), the distribution now includes 33
and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the native .osg ASCII format. seperate plugins for loading various 3D and Image data formats. 3D
Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds (include compressed mip mapped imagery), .tga and qucktime (under OSX). Database loaders include OpenFlight (.flt), TerraPage (.txp) including
A whole set of high quality, anti-aliased fonts can also be loaded via the freetype plugin. multi-threading support, LightWave (.lwo), Alias Wavefront (.obj),
</p> Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb),
<p> Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0
The scene graph also has a set of <i>Node Kits</i> which are seperate libraries, (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the
that can be compiled in with your applications or loaded in at runtime, which add support for particle systems (osgParticle), native .osg ASCII format.
high quality anti-aliased text (osgText) and navigational light points (osgSim). Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds
</p> (include compressed mip mapped imagery), .tga and qucktime (under OSX).
<p> A whole set of high quality, anti-aliased fonts can also be loaded via
The community has also developed a number of additional <i>Node Kits</i> such as the freetype plugin.
<a href="http://osgnv.sourceforge.net/">osgNV</a> (which includes support for NVidia's vertex, fragment, combiner etc extension and NVidia's Cg shader language.), </p>
<a href="http://www.terrainengine.com">Demeter</a> (CLOD terrain + integration with OSG). <p>
<a href="http://osgcal.sourceforge.net">osgCal</a> (which integrates <a href="http://cal3d.sourceforge.net//">Cal3D</a> and the OSG), The scene graph also has a set of <i>Node Kits</i> which are seperate
<a href="http://www.cs.umu.se/kurser/TDBD12/HT02/lab/osgVortex/">osgVortex</a> (which integrates the <a href="http://www.cm-labs.com/">CM-Labs Vortex</a> physics enginer with OSG) libraries,
and a whole set libraries that integrating the leading Windowing API's Links can be found in the bazaar sections on the that can be compiled in with your applications or loaded in at runtime,
<a href="http://www.openscenegraph.org/download/">download</a> page of OpenSceneGraph webiste. which add support for particle systems (osgParticle),
</p> high quality anti-aliased text (osgText) and navigational light points
<p> (osgSim). </p>
The project has also been integrated with <a href=http://www.vrjuggler.org/>VR Juggler</a> and <p>
<a href="http://http://vess.ist.ucf.edu/">Vess</a> virtual realilty the frameworks, with others in developments. The community has also developed a number of additional <i>Node Kits</i>
such as <a href="http://osgnv.sourceforge.net/">osgNV</a> (which
includes support for NVidia's vertex, fragment, combiner etc extension
<li><b><i>Portability</i></b></li> and NVidia's Cg shader language.), <a
href="http://www.terrainengine.com">Demeter</a> (CLOD terrain +
integration with OSG). <a href="http://osgcal.sourceforge.net">osgCal</a>
(which integrates <a href="http://cal3d.sourceforge.net//">Cal3D</a>
and the OSG), <a
href="http://www.cs.umu.se/kurser/TDBD12/HT02/lab/osgVortex/">osgVortex</a>
(which integrates the <a href="http://www.cm-labs.com/">CM-Labs Vortex</a>
physics enginer with OSG)
and a whole set libraries that integrating the leading Windowing API's
Links can be found in the bazaar sections on the <a
href="http://www.openscenegraph.org/download/">download</a> page of
OpenSceneGraph webiste. </p>
<p>
The project has also been integrated with <a
href="http://www.vrjuggler.org/">VR Juggler</a> and <a
href="http://http://vess.ist.ucf.edu/">Vess</a> virtual realilty the
frameworks, with others in developments. </p>
<li><b><i>Portability</i></b></li>
The core scene graph has also been designed to The core scene graph has also been designed to
have minimal dependency on any specific platform, requiring little more than have minimal dependency on any specific platform, requiring little more
than
Standard C++ and OpenGL. This has allowed the scene graph to be rapidly Standard C++ and OpenGL. This has allowed the scene graph to be rapidly
ported to a wide range of platforms - originally developed on IRIX, then ported to a wide range of platforms - originally developed on IRIX,
ported to Linux, then to Windows, then FreeBSD, Mac OSX, Solaris, HP-UX and then
we even a report of successful porting to PlayStation2! ported to Linux, then to Windows, then FreeBSD, Mac OSX, Solaris, HP-UX
<br> and we even a report of successful porting to PlayStation2! <br>
The core scene graph library being completely windowing system independent makes The core scene graph library being completely windowing system
it easy for users to add their own window-specific libraries and applications on top. independent makes it easy for users to add their own window-specific
In the distribution there is already the osgProducer library which integrates with <a href="http://www.andesengineering.com/Producer/">OpenProducer</a>, and in the Bazaar libraries and applications on top.
found at openscenegrph.org/download/ one can find examples of applications In the distribution there is already the osgProducer library which
written on top of GLUT, Qt, MFC, WxWindows and SDL. Users have also integrated it integrates with <a href="http://www.andesengineering.com/Producer/">OpenProducer</a>,
and in the Bazaar
found at openscenegrph.org/download/ one can find examples of
applications
written on top of GLUT, Qt, MFC, WxWindows and SDL. Users have also
integrated it
with Motif, and X. with Motif, and X.
<p></p>
<p> <li><b><i>Scalability</i></b></li>
<li><b><i>Scalability</i></b></li>
The scene graph will not only run on portables all The scene graph will not only run on portables all
the way up to Onyx Infinite Reality Monsters, but also supports the multiple the way up to Onyx Infinite Reality Monsters, but also supports the
multiple
graphics subsystems found on machines like a mulitpipe Onyx. This is graphics subsystems found on machines like a mulitpipe Onyx. This is
possible because the core scene graph supports multiple graphics contexts possible because the core scene graph supports multiple graphics
for both OpenGL Display Lists and texture objects, and the cull and draw contexts
traversals have been designed to cache rendering data locally and use the for both OpenGL Display Lists and texture objects, and the cull and
scene graph almost entirely as a read-only operation. This allows multiple draw
cull-draw pairs to run on multiple CPU's which are bound to multiple graphics traversals have been designed to cache rendering data locally and use
subsystems. Support for multiple graphic context and multi-threading is all the
available out of the box via osgProducer - all the examples in the distribution scene graph almost entirely as a read-only operation. This allows
multiple
cull-draw pairs to run on multiple CPU's which are bound to multiple
graphics
subsystems. Support for multiple graphic context and multi-threading is
all
available out of the box via osgProducer - all the examples in the
distribution
can run multi-pipe just by use a simple configuation file. can run multi-pipe just by use a simple configuation file.
</ul> </ul>
All the source to the OSG is published under the Open Scene Graph
All the source to the OSG is published under the Open Scene Graph Public License Public License
(a relaxed version on the LGPL) which allows both open source and closed source projects to use, (a relaxed version on the LGPL) which allows both open source and
modify and distribute it freely as long its usage complies with the OSGPL. closed source projects to use,
The project has been developed over the last four years, initiated by Don modify and distribute it freely as long its usage complies with the
Burns, and then taken over by Robert Osfield who continues to lead the project OSGPL.
today. There are many other contributors to the library, for a full list The project has been developed over the last four years, initiated by
check out the AUTHORS file. Both Robert and Don now work on the OpenSceneGraph Don
in a professional capacity providing consultancy and bespoke development Burns, and then taken over by Robert Osfield who continues to lead the
project
today. There are many other contributors to the library, for a full
list
check out the AUTHORS file. Both Robert and Don now work on the
OpenSceneGraph
in a professional capacity providing consultancy and bespoke
development
on top the library, and are also collaborating on the book. Work on the on top the library, and are also collaborating on the book. Work on the
core scene graph and support of public mailing list remains unpaid as are core scene graph and support of public mailing list remains unpaid as
the contributions of the rest of the community, but this hasn't impacted are
the quality of the source or support which once you get stuck in you grow the contributions of the rest of the community, but this hasn't
impacted
the quality of the source or support which once you get stuck in you
grow
to appreciate. to appreciate.
<p>The project is currently in beta, which means the main core features are now in <p>The project is currently in beta, which means the main core features
place, with a 1.0 release in second half of 2003. Despite the beta development status, are now in
the project has already earned the reputation as the leading open source scene place, with a 1.0 release in second half of 2003. Despite the beta
graph, and is establishing itself as a viable alternative to the commercial development status,
scene graphs. Numerous companies, university researchers and graphics enthusiasts the project has already earned the reputation as the leading open
have already adopted the OpenSceneGraph for their projects, all over the world. source scene
Examples of the wide variety of applications already developed ontop of the OpenSceneGraph include graph, and is establishing itself as a viable alternative to the
<a href="http://http://www.andesengineering.com/BlueMarbleViewer/">Blue Marble Viewer</a>, commercial
<a href="http://www.vterrain.org"> Virtual Terrain Project</a>, scene graphs. Numerous companies, university researchers and graphics
<a href="http://http://csp.sourceforge.net/">Combat Simulator Project</a>, enthusiasts
<a href="http://osgedit.sourceforge.net/">OSG-Edit</a>. This is just a snippet of the projects have already adopted the OpenSceneGraph for their projects, all over
that use the project, more examples can be found on the screenshot pages and bazaar on the website. the world. Examples of the wide variety of applications already
developed ontop of the OpenSceneGraph include <a
href="http://http://www.andesengineering.com/BlueMarbleViewer/">Blue
Marble Viewer</a>, <a href="http://www.vterrain.org"> Virtual Terrain
Project</a>, <a href="http://http://csp.sourceforge.net/">Combat
Simulator Project</a>, <a href="http://osgedit.sourceforge.net/">OSG-Edit</a>.
This is just a snippet of the projects that use the project, more
examples can be found on the screenshot pages and bazaar on the
website.
</p> </p>
<h3> <h3>
<u>Getting started</u></h3> <u>Getting started</u></h3>
The first thing is to select the distribution which suits you, there are The first thing is to select the distribution which suits you, there
are
binary, development and source code distributions, these can be loaded binary, development and source code distributions, these can be loaded
from the from the
<a href="http://www.openscenegraph.org/download">http://www.openscenegraph.org/download</a> <a href="http://www.openscenegraph.org/download">http://www.openscenegraph.org/download</a>
page. The latest developments area available as via a nightly tarball or page. The latest developments area available as via a nightly tarball
or
via cvs. via cvs.
<p>The binary distribution contains just the libraries (.dll's /.so's) <p>The binary distribution contains just the libraries (.dll's /.so's)
and example executables. This is suitable for using the OpenSceneGraph with and example executables. This is suitable for using the OpenSceneGraph
with
an application that has already been compiled but depends at runtime on an application that has already been compiled but depends at runtime on
the OpenSceneGraph. the OpenSceneGraph.
</p> </p>
<p>The development distribution contains the libraries (.dll's /.so's), <p>The development distribution contains the libraries (.dll's /.so's),
example executables, include files, and source to the examples. This is suitable example executables, include files, and source to the examples. This is
suitable
for developers using the OpenSceneGraph. for developers using the OpenSceneGraph.
</p> </p>
<p>The source distribution contains all the source and include files <p>The source distribution contains all the source and include files
required to build the OpenSceneGraph from scratch, and is ideal if you required to build the OpenSceneGraph from scratch, and is ideal if you
want to learn more about how the scene graph works, how to extend it, and want to learn more about how the scene graph works, how to extend it,
and
to track down and fix any problems that you come across. to track down and fix any problems that you come across.
</p> </p>
<p>If you are using a source distribution then read the <a href="install.html">installation</a> <p>If you are using a source distribution then read the <a
href="install.html">installation</a>
instructions for how to get the OpenSceneGraph compiling and installed instructions for how to get the OpenSceneGraph compiling and installed
on your system. You may also need to download libraries that parts of the on your system. You may also need to download libraries that parts of
OpenSceneGraph depend upon, such as Producer. Check the <a href="dependencies.html">dependencies</a> the
OpenSceneGraph depend upon, such as Producer. Check the <a
href="dependencies.html">dependencies</a>
list for further details. list for further details.
</p> </p>
<p>For full instructions of how to run the examples read the <a href="examples.html">examples</a> <p>For full instructions of how to run the examples read the <a
href="examples.html">examples</a>
page. page.
</p> </p>
<h3> <h3>
<u>Learning how to use the OpenSceneGraph</u></h3> <u>Learning how to use the OpenSceneGraph</u></h3>
<p>The OpenSceneGraph distribution comes with a reference guide for each of <p>The OpenSceneGraph distribution comes with a reference guide for
the component libraries - osg, osgDB, osgUtil, osgText, osgSim, osgParticle and osgProducer, a set each of
of 42 examples - the source of which can be found in examples/ directory in the distribution. For questions the component libraries - osg, osgDB, osgUtil, osgText, osgSim,
or help which can't be easily be answered by the reference guide and examples osgParticle and osgProducer, a set
source, one should join the mailing list (details below). There are also of 42 examples - the source of which can be found in examples/
the beginnings of a <a href="http://www.c2.com/cgi/wiki?OpenSceneGraphFaq">Wiki directory in the distribution. For questions
or help which can't be easily be answered by the reference guide and
examples
source, one should join the mailing list (details below). There are
also
the beginnings of a <a
href="http://www.c2.com/cgi/wiki?OpenSceneGraphFaq">Wiki
based FAQ</a> which may help answer a few of the common queries. based FAQ</a> which may help answer a few of the common queries.
</p> </p>
<p>A programming guide will be available in form of a OpenSceneGraph book <p>A programming guide will be available in form of a OpenSceneGraph
which is being written by Don Burns and Robert Osfield, parts of it will book
which is being written by Don Burns and Robert Osfield, parts of it
will
be available online. be available online.
</p> </p>
<p>Although not directly related to the OpenSceneGraph, once can learn <p>Although not directly related to the OpenSceneGraph, once can learn
about scene graph technology from such sources as the <a href="http://www.sgi.com/software/inventor/manuals.html">Open about scene graph technology from such sources as the <a
Inventor Mentor</a>, and <a href="http://www.cineca.it/manuali/Performer/ProgGuide24/html">Performer href="http://www.sgi.com/software/inventor/manuals.html">Open
Inventor Mentor</a>, and <a
href="http://www.cineca.it/manuali/Performer/ProgGuide24/html">Performer
Programming Guides</a>. The latter is the closer in design to Programming Guides</a>. The latter is the closer in design to
the OpenSceneGraph, although the Performer manuals are in C, alas. Also of use the OpenSceneGraph, although the Performer manuals are in C, alas. Also
as a background to some of the techniques used is a SIGGRAPH <a href="http://www.opengl.org/developers/code/sig99/advanced99/course_slides/vissim/index.htm">Vis-Sim of use
as a background to some of the techniques used is a SIGGRAPH <a
href="http://www.opengl.org/developers/code/sig99/advanced99/course_slides/vissim/index.htm">Vis-Sim
course</a>. course</a>.
</p> </p>
<p>The OpenSceneGraph uses OpenGL and does so with a deliberately thin layer, <p>The OpenSceneGraph uses OpenGL and does so with a deliberately thin
making it easy to control the underlying OpenGL and to extend it with OpenGL layer,
extensions. The close tie with OpenGL is also reflected in the naming of making it easy to control the underlying OpenGL and to extend it with
OpenGL
extensions. The close tie with OpenGL is also reflected in the naming
of
many of the OpenGL state related classes, and the parameters that they many of the OpenGL state related classes, and the parameters that they
encapsulate, which means that knowledge of OpenGL itself will go a long way encapsulate, which means that knowledge of OpenGL itself will go a long
way
to understanding how to get the best out of the OpenSceneGraph. To this to understanding how to get the best out of the OpenSceneGraph. To this
end it is worth obtaining a copy of the OpenGL programming guide - <a href="http://fly.cc.fer.hr/~unreal/theredbook/">`Red end it is worth obtaining a copy of the OpenGL programming guide - <a
Book`</a> and OpenGL reference guide 'Blue Book'. The main <a href="http://www.opengl.org">OpenGL href="http://fly.cc.fer.hr/%7Eunreal/theredbook/">`Red
Book`</a> and OpenGL reference guide 'Blue Book'. The main <a
href="http://www.opengl.org">OpenGL
website</a> is also a good source of links and further information. website</a> is also a good source of links and further information.
</p> </p>
<h3> <h3>
<u>Support and discussion - the <i>openscenegraph-news</i> mailing list</u></h3> <u>Support and discussion - the <i>osg-user</i> mailing list</u></h3>
For scene graph related questions, bug reports, bug fixes, and general For scene graph related questions, bug reports, bug fixes, and general
design and development discussion one should join the <a href="http://lists.sourceforge.net/mailman/listinfo/openscenegraph-news">openscenegraph-news</a> design and development discussion one should join the <a
mailing list, and check the the mailing list <a href="http://sourceforge.net/mailarchive/forum.php?forum_id=4775">archives</a>. href="http://dburns.dhs.org/mailman/listinfo/osg-user"><span
<p>Professional support is also available in the form of confidential online, style="text-decoration: underline;">osg-user</span></a>
phone and onsite support and consultancy, for details contact Robert Osfield mailing list, and check the the mailing list <a
href="http://osgcvs.no-ip.com/osgarchiver/">archives</a>.
<p>Professional support is also available in the form of confidential
online,
phone and onsite support and consultancy, for details contact Robert
Osfield
at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a>. at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a>.
</p>
</body> </body>
</html> </html>