Updated links to mailing list
This commit is contained in:
parent
78a0fd5a16
commit
c7b96d18b7
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user