Ran the spell checker through the new documentation.

This commit is contained in:
Robert Osfield 2002-04-25 13:26:33 +00:00
parent 23f048884b
commit b5bd42674b
9 changed files with 1021 additions and 849 deletions

View File

@ -37,10 +37,6 @@ containing names of contributors to the osg.
file listing coarse grained changes between releases.
<br><tt><a href="../ChangeLog">ChangeLog</a>&nbsp; </tt>text file listing
fine grained changes between releases.
<br><tt><a href="../TODO">TODO</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </tt>text
file listing&nbsp; left to implement/extend/rewrite.
<br><tt><a href="../FAQ">FAQ</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</tt>text file listing Frequently asked questions.
<br><tt><a href="../Makefile">Makefile</a>&nbsp;&nbsp; </tt>Unix makefile.
<br><tt>index.html </tt>This file!</blockquote>

View File

@ -2,162 +2,208 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.6 [en-gb]C-CCK-MCD NetscapeOnline.co.uk (Win95; I) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Demos</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2>
<a NAME="Running the demos"></a><u>Running the demos</u></h2>
<p>
Once the OpenSceneGraph is <a href="install.html">installed</a> you will need place the location where it was installed on the you systems paths
environmental variables, and then download the <a href="data.html">demo data</a> and set the <b>OSG_FILE_PATH</b> so that the file loading can locate the datasets.
It is probably worth setting you autoexec.bat, .bashrc or.tcsh etc to pick up on these settings so that next time you log in
everything is in easy reach.
</p>
<li>Windows:</li>
<ul>
<b>set PATH = C:/all/the/exisitng/paths;C:/OpenSceneGraph/bin</b>
<br><b>set OSG_FILE_PATH = C:/OpenSceneGraph-Data;C:/OpenSceneGraph-Data/Images;C:/OpenSceneGraph-Data/Fonts</b>
</ul>
Once the OpenSceneGraph is <a href="install.html">installed</a> you will
need place the location where it was installed on the you systems paths
environmental variables, and then download the <a href="data.html">demo
data</a> and set the <b>OSG_FILE_PATH</b> so that the file loading can
locate the datasets. It is probably worth setting you autoexec.bat, .bashrc
or.tcsh etc to pick up on these settings so that next time you log in everything
is in easy reach.
<li>
Windows:</li>
</p>
<li>Unix</li>
<ul>
<b>export PATH = ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
<ul><b>set PATH = C:/all/the/exisitng/paths;C:/OpenSceneGraph/bin</b>
<br><b>set OSG_FILE_PATH = C:/OpenSceneGraph-Data;C:/OpenSceneGraph-Data/Images;C:/OpenSceneGraph-Data/Fonts</b></ul>
<li>
Unix</li>
<ul><b>export PATH = ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
<br><b>export LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib</b>
<br><b>export OSG_FILE_PATH = /home/myaccount/OpenSceneGraph-Data:C:/OpenSceneGraph-Data/Images:C:/OpenSceneGraph-Data/Fonts</b>
<br>or
<br><b>setenv PATH ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
<br><b>setenv LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib</b>
<br><b>setenv OSG_FILE_PATH /home/myaccount/OpenSceneGraph-Data:C:/OpenSceneGraph-Data/Images:C:/OpenSceneGraph-Data/Fonts</b>
</ul>
<p>
All the demos run on the commandline, most requiring parameters, such as what file to load, if you are in any doubt
just run the application and it will either run, or provide help on what options it accepts.
</p>
<br><b>setenv OSG_FILE_PATH /home/myaccount/OpenSceneGraph-Data:C:/OpenSceneGraph-Data/Images:C:/OpenSceneGraph-Data/Fonts</b></ul>
All the demos run on the commandline, most requiring parameters, such as
what file to load, if you are in any doubt just run the application and
it will either run, or provide help on what options it accepts.
<br>&nbsp;
<table>
<tr>
<td><a href="sgv.html"><img src="images/sgv_cow.jpg" width=128 height=100 border=0></a> </td>
<td><b>sgv cow.osg</b></td>
<td>The scene graph viewer demo uses osgGLUT::Viewer to bring up a basic viewer. To find out what
command line arguments it takes simply run sgv without any arguments. To load a model simple
run sgv filename.ext. The osgGLUT::Viewer provides an extensive set of operations that can be
used to display information about the loaded database such as peformance stas, through to
output a snapshot of the screen, which is how these thumbnails were created. For a full list
of key presses and mouse interaction read the <a href="sgv.html">sgv</a> documentaion.</td>
</tr>
<tr>
<td><a href="stereo.html"><img src="images/sgv_stereo.jpg" width=128 height=100 border=0></a> </td>
<td><b>sgv -stereo cessna.osg</b></td>
<td>The scene graph viewer also supports anaglyphic, quad buffered, and split screen stereo modes,
for a full list of options and environmental variables see the <a href="stereo.html">stereo</a> documentaion.</td>
</tr>
<tr>
<td><img src="images/hangglide.jpg" width=128 height=100 border=0> </td>
<td><b>hangglide</b></td>
<td>The hang glide demo creates a simple flying site (Don Burns local hang glide site infact!),
demonstrating how to create simple terrain, trees and skydomes, and how to implement a simple
flight camera manipulator to allow the user to fly around.
</td>
</tr>
<tr>
<td><img src="images/osgbillboard.jpg" width=128 height=100 border=0> </td>
<td><b>osgbillboard lz.rgb</b></td>
<td>Demonstrates how to create the various types of billboard supported by the OpenSceneGraph. Billboards
are typically used for trees or particles effects.
</td>
</tr>
<tr>
<td><img src="images/osgcube.jpg" width=128 height=100 border=0> </td>
<td><b>osgcube</b></td>
<td>Simplest of all demos, create a cube geometry and spin it!
</td>
</tr>
<tr>
<td><img src="images/osghud.jpg" width=128 height=100 border=0> </td>
<td><b>osghud glider.osg</b></td>
<td>Very similar to the basic sgv demo, but adds an othographic projection over the top of the main 3D view
to create a head up display effect. Also demonstrates how to use osgText.
.</td>
</tr>
<tr>
<td><a href="sgv.html"><img SRC="images/sgv_cow.jpg" BORDER=0 height=100 width=128></a></td>
<tr>
<td><img src="images/osgimpostor.jpg" width=128 height=100 border=0> </td>
<td><b>osgimpostor Town.osg</b></td>
<td>OpenSceneGraph is unique amoung scene graph in the fact that it supports dynamically updated impostors natively,
and this demo uses osgUtil::InsertImpostorVisitor to traverse the loaded scene graph inserting osg::Importor nodes in place of groups
and LOD, so you can add Impostor into any of your own datasets! The scene graph then
takes over full repsonsibility for managing required multistage rendering all dynamically at runtime, whilest
keeping it neatly encapsulated making it incrediable easy to use. The Impostor support demonstrates how
powerful the multi-stage multi-pass rendering framework that the OpenSceneGraph has, almost all other scene
graphs have to hardwire such effects into them and require significant application coding to do so.
</td>
</tr>
<tr>
<td><img src="images/osgreflect.jpg" width=128 height=100 border=0> </td>
<td><b>osgreflect cow.osg</b></td>
<td>An example of how to set up planar reflections using the standard multi-pass stencil buffer algorithm. This
is all handled within the scene graph, so there is no need to hardwire multi-pass effects into your own
application.
.</td>
</tr>
<tr>
<td><img src="images/osgscribe.jpg" width=128 height=100 border=0> </td>
<td><b>osgscribe.cow.osg</b></td>
<td>An example of how to decorate your scene graph geometry for useful effects such as scribing. This demo
uses two instances of your model, the first one uses the state values set in your scene graph, the
second instance override the polygmode to render it as wireframe, and with a polyon offset to ensure it
is seen from all angles. These two instance are grouped together and then are treated like any other
scene graph.
</td>
</tr>
<tr>
<td><img src="images/osgstereoimage.jpg" width=128 height=100 border=0> </td>
<td><b>osgstereoimage left.rgb right.rgb</b></td>
<td>An example of use node maks to select different parts of the scene graph for different traversals, in this
case two seperate images are drawn for the left and right eyes to generate a stereo 3D image from two flat
images!
.</td>
</tr>
<tr>
<td><img src="images/osgtext.jpg" width=128 height=100 border=0> </td>
<td><b>osgtext</b></td>
<td>An example showing how to creating the various different typs of text that the osgText library supports.
</td>
</tr>
<tr>
<td><img src="images/osgtexture.jpg" width=128 height=100 border=0> </td>
<td><b>osgtexture lz.rgb reflect.rgb</b></td>
<td>An example showing how to creating the textured quads, each with different texture parameters, including
anistrophic filtering and texture compression!
</td>
</tr>
<tr>
<td><img src="images/osgviews.jpg" width=128 height=100 border=0> </td>
<td><b>osgviews.cow.osg</b></td>
<td>An example of multiple viewports all running at once.
</td>
</tr>
<td><b>sgv cow.osg</b></td>
<td>The scene graph viewer demo uses osgGLUT::Viewer to bring up a basic
viewer. To find out what command line arguments it takes simply run sgv
without any arguments. To load a model simple run sgv filename.ext. The
osgGLUT::Viewer provides an extensive set of operations that can be used
to display information about the loaded database such as performance stats,
through to output a snapshot of the screen, which is how these thumbnails
were created. For a full list of key presses and mouse interaction read
the <a href="sgv.html">sgv</a> documentation.</td>
</tr>
<tr>
<td><a href="stereo.html"><img SRC="images/sgv_stereo.jpg" BORDER=0 height=100 width=128></a></td>
<td><b>sgv -stereo cessna.osg</b></td>
<td>The scene graph viewer also supports anaglyphic, quad buffered, and
split screen stereo modes, for a full list of options and environmental
variables see the <a href="stereo.html">stereo</a> documentation.</td>
</tr>
<tr>
<td><img SRC="images/hangglide.jpg" BORDER=0 height=100 width=128></td>
<td><b>hangglide</b></td>
<td>The hang glide demo creates a simple flying site (Don Burns local hang
glide site in fact!), demonstrating how to create simple terrain, trees
and skydomes, and how to implement a simple flight camera manipulator to
allow the user to fly around.&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osgbillboard.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgbillboard lz.rgb</b></td>
<td>Demonstrates how to create the various types of billboard supported
by the OpenSceneGraph. Billboards are typically used for trees or particles
effects.&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osgcube.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgcube</b></td>
<td>Simplest of all demos, create a cube geometry and spin it!&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osghud.jpg" BORDER=0 height=100 width=128></td>
<td><b>osghud glider.osg</b></td>
<td>Very similar to the basic sgv demo, but adds an orthographic projection
over the top of the main 3D view to create a head up display effect. Also
demonstrates how to use osgText. .</td>
</tr>
<tr>
<td><img SRC="images/osgimpostor.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgimpostor Town.osg</b></td>
<td>OpenSceneGraph is unique among scene graph in the fact that it supports
dynamically updated impostors natively, and this demo uses osgUtil::InsertImpostorVisitor
to traverse the loaded scene graph inserting osg::Importor nodes in place
of groups and LOD, so you can add Impostor into any of your own datasets!
The scene graph then takes over full responsibility for managing required
multistage rendering all dynamically at runtime, whilst keeping it neatly
encapsulated making it incredible easy to use. The Impostor support demonstrates
how powerful the multi-stage multi-pass rendering framework that the OpenSceneGraph
has, almost all other scene graphs have to hardwire such effects into them
and require significant application coding to do so.&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osgreflect.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgreflect cow.osg</b></td>
<td>An example of how to set up planar reflections using the standard multi-pass
stencil buffer algorithm. This is all handled within the scene graph, so
there is no need to hardwire multi-pass effects into your own application.
.</td>
</tr>
<tr>
<td><img SRC="images/osgscribe.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgscribe.cow.osg</b></td>
<td>An example of how to decorate your scene graph geometry for useful
effects such as scribing. This demo uses two instances of your model, the
first one uses the state values set in your scene graph, the second instance
override the polygmode to render it as wireframe, and with a polygon offset
to ensure it is seen from all angles. These two instance are grouped together
and then are treated like any other scene graph.&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osgstereoimage.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgstereoimage left.rgb right.rgb</b></td>
<td>An example of use node maks to select different parts of the scene
graph for different traversals, in this case two separate images are drawn
for the left and right eyes to generate a stereo 3D image from two flat
images! .</td>
</tr>
<tr>
<td><img SRC="images/osgtext.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgtext</b></td>
<td>An example showing how to creating the various different typs of text
that the osgText library supports.&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osgtexture.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgtexture lz.rgb reflect.rgb</b></td>
<td>An example showing how to creating the textured quads, each with different
texture parameters, including anisotrophic filtering and texture compression!&nbsp;</td>
</tr>
<tr>
<td><img SRC="images/osgviews.jpg" BORDER=0 height=100 width=128></td>
<td><b>osgviews.cow.osg</b></td>
<td>An example of multiple viewports all running at once.&nbsp;</td>
</tr>
</table>
</body>

View File

@ -2,157 +2,171 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.6 [en-gb]C-CCK-MCD NetscapeOnline.co.uk (Win95; I) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Compilation dependencies</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2>
<a NAME="Scene graph dependencies"></a><u>Scene graph dependencies</u></h2>
<p>The OpenSceneGraph is composed of core scene graph libraries, plugins libraries and demo programs. The core scene
graph libraries (osg, osgDB, osgUtil) are only dependant upon OpenGL and Standard C++ so should compile straight out of
the box on most systems. To run the demos one will also need to compile osgGLUT which adds the dependancy of GLUT, and
if true type text is required then the freetype library will be required. The plugins which are used to read and write
various file formats have their own sets of dependancies listed below, some have no dependancies at all. A plugin
is only needed if you need to load that specific file format, so it is not critical if you don't have all the reqiured
dependencies.
</p>
The OpenSceneGraph is composed of core scene graph libraries, plugins libraries
and demo programs. The core scene graph libraries (osg, osgDB, osgUtil)
are only dependent upon OpenGL and Standard C++ so should compile straight
out of the box on most systems. To run the demos one will also need to
compile osgGLUT which adds the dependency of GLUT, and if true type text
is required then the freetype library will be required. The plugins which
are used to read and write various file formats have their own sets of
dependencies listed below, some have no dependencies at all. A plugin is
only needed if you need to load that specific file format, so it is not
critical if you don't have all the required dependencies.
<br>
<hr>
<h3>
<a NAME="Windows dependency arhives"></a><u>Windows dependency archives</u></h3>
<p>To make life easier for Windows users, we have put together a .zip archives with all the required dependancies
which can be download and installed somewhere in you system. You'll need to set VisualStudio to pick up on the
include and libs, and the PATH set to pick up in the dll's. Alternatively, a more hacky but simpler solution is
to unpack this archive inside you OpenSceneGraph distribution, so that all the include files drop into
OpenSceneGraph/include, and the libs drop into OpenSceneGraph/lib, and all the dll's drop into OpenSceneGraph/bin,
this way VisualStudio will pick up the files simpler through the paths set up inside the workspace and project
files. The archives can be downloaded here: . .
To make life easier for Windows users, we have put together a .zip archives
with all the required dependencies which can be download and installed
somewhere in you system. You'll need to set VisualStudio to pick up on
the include and libs, and the PATH set to pick up in the dll's. Alternatively,
a more hacky but simpler solution is to unpack this archive inside you
OpenSceneGraph distribution, so that all the include files drop into OpenSceneGraph/include,
and the libs drop into OpenSceneGraph/lib, and all the dll's drop into
OpenSceneGraph/bin, this way VisualStudio will pick up the files simpler
through the paths set up inside the workspace and project files. The archives
can be downloaded here: . .
<ul>
<li>freetype, libpng, libungif, libtiff, libjpeg & zlib includes, libs and dll.</li>
<ul><i><a href="http://www.openscenegraph.org/download/dependencies/OsgWin32Dependencies.zip">
http://www.openscenegraph.org/download/dependencies/OsgWin32Dependencies.zip</a></i></ul>
<br>
<li>GLUT include, lib and dll.</li>
<ul><i><a href="http://www.openscenegraph.org/download/dependencies/Win32Glut.zip">
http://www.openscenegraph.org/download/dependencies/OsgWin32Glut.zip</a></i></ul>
<li>
freetype, libpng, libungif, libtiff, libjpeg &amp; zlib includes, libs
and dll.</li>
<ul><i><a href="http://www.openscenegraph.org/download/dependencies/OsgWin32Dependencies.zip">http://www.openscenegraph.org/download/dependencies/OsgWin32Dependencies.zip</a></i></ul>
<li>
GLUT include, lib and dll.</li>
<ul><i><a href="http://www.openscenegraph.org/download/dependencies/OsgWin32Glut.zip">http://www.openscenegraph.org/download/dependencies/OsgWin32Glut.zip</a></i></ul>
</ul>
<hr>
<h3>
<a NAME="Core library dependencies"></a><u>Core library dependencies</u></h3>
<ul>
<li>src/osgText - The osgText library supports true type fonts via the freetype library. </li>
<ul><i><a href="http://www.freetype.org/">
http://www.freetype.org/</a></i></ul>
<br><li>src/osgGLUT - The osgGLUT library depends upon, you guessed it, glut... </li>
<ul><i><a href="http://www.opengl.org/developers/documentation/glut/index.html">
http://www.opengl.org/developers/documentation/glut/index.html</a></i></ul></ul>
<ul>
<li>
src/osgText - The osgText library supports true type fonts via the freetype
library.</li>
<ul><i><a href="http://www.freetype.org/">http://www.freetype.org/</a></i></ul>
<li>
src/osgGLUT - The osgGLUT library depends upon, you guessed it, glut...</li>
<ul><i><a href="http://www.opengl.org/developers/documentation/glut/index.html">http://www.opengl.org/developers/documentation/glut/index.html</a></i></ul>
</ul>
<hr>
<h3>
<a NAME="Plug-in dependencies"></a><u>Plug-in dependencies</u></h3>
<p>
Follows is the list of depedencies which some of the osgPlugins require,
Follows is the list of dependencies which some of the osgPlugins require,
note the core osg and viewer do not need the following dependencies, you
only need the following if you require each specific plugin. Note,
the flt, 3ds, pic, tga, do not have any dependencies other than Standard
C++ so will compile straight of the bag. Under Linux the majority
of the depedancies below come as standard with distributions so you may not need to download them at all.
Its best to try out a straight compile of the osg, if you get missing includes/libs
errors then chase up the below.
</p>
only need the following if you require each specific plugin. Note, the
flt, 3ds, pic, tga, do not have any dependencies other than Standard C++
so will compile straight of the bag. Under Linux the majority of the dependencies
below come as standard with distributions so you may not need to download
them at all. Its best to try out a straight compile of the osg, if you
get missing includes/libs errors then chase up the below.
<ul>
<li>
src/osgPlugins/pfb</li>
<br>There is a Performer plugin in this distribution for converting from
Performer to OSG and from OSG to Performer. This plugin requires
Performer to be installed and therefore is not compiled by default. If
you have Performer (available under Linux and IRIX) then edit src/osgPlugins/Make
to compile under the plugin. Performer can be downloaded from :
<ul><i><a href="http://www.sgi.com/">http://www.sgi.com/</a></i>
<i><a href="http://www.sgi.com/"></a></i></ul>
Performer to OSG and from OSG to Performer. This plugin requires Performer
to be installed and therefore is not compiled by default. If you have Performer
(available under Linux and IRIX) then edit src/osgPlugins/Make to compile
under the plugin. Performer can be downloaded from :
<ul><i><a href="http://www.sgi.com/">http://www.sgi.com/</a></i></ul>
<br><li>src/osgPlugins/png</li>
<li>
src/osgPlugins/png</li>
<br>The png plugin depends upon the libpng and zlib (for compression) libraries,
if you don't already have it installed, you'll need to download, compile
and install it. Project home pages are:
<ul><i><a href="http://www.libpng.org/pub/png/libpng.html">http://www.libpng.org/pub/png/libpng.html</a></i>
<br><i><a href="http://www.info-zip.org/pub/infozip/zlib/">http://www.info-zip.org/pub/infozip/zlib/</a></i>
<i><a href="http://www.info-zip.org/pub/infozip/zlib/"></a></i></ul>
<br><i><a href="http://www.info-zip.org/pub/infozip/zlib/">http://www.info-zip.org/pub/infozip/zlib/</a></i></ul>
<br><li>src/osgPlugins/gif</li>
<li>
src/osgPlugins/gif</li>
<br>The gif plugin depends upon the libungif library, if you don't already
have it installed, you'll need to download, compile and install it. Project
home page is:
<ul><i><a href="http://prtr-13.ucsc.edu/~badger/software/libungif/">http://prtr-13.ucsc.edu/~badger/software/libungif/</a></i>
<br><i><a href="http://prtr-13.ucsc.edu/~badger/software/libungif/"></a></i></ul>
<ul><i><a href="http://prtr-13.ucsc.edu/~badger/software/libungif/">http://prtr-13.ucsc.edu/~badger/software/libungif/</a></i></ul>
Ftp download at :
<ul><i><a href="ftp://prtr-13.ucsc.edu/pub/libungif/">ftp://prtr-13.ucsc.edu/pub/libungif/</a></i>
<i><a href="ftp://prtr-13.ucsc.edu/pub/libungif/"></a></i></ul>
<ul><i><a href="ftp://prtr-13.ucsc.edu/pub/libungif/">ftp://prtr-13.ucsc.edu/pub/libungif/</a></i></ul>
<br><li>src/osgPlugins/jpeg</li>
<li>
src/osgPlugins/jpeg</li>
<br>The jpeg plugin depends upon the libjpeg library, if you don't already
have it installed, you'll need to download, compile and install it. Project
home page is:
<ul><i><a href="http://www.ijg.org/">http://www.ijg.org/</a></i>
<i><a href="http://www.ijg.org/"></a></i></ul>
<ul><i><a href="http://www.ijg.org/">http://www.ijg.org/</a></i></ul>
<br><li>src/osgPlugins/tiff</li>
<li>
src/osgPlugins/tiff</li>
<br>The tiff plugin depends upon the libtiff library, if you don't already
have it installed, you'll need to download, compile and install it. Project
home page is:
<ul><i><a href="http://www.libtiff.org">http://www.libtiff.org</a></i>
<i><a href="http://www.libtiff.org"></a></i></ul>
<ul><i><a href="http://www.libtiff.org">http://www.libtiff.org</a></i></ul>
<br><li>src/osgPlugins/zip</li>
<li>
src/osgPlugins/zip</li>
<br>The zip compressed archive plugin depends upon the unzip executable
being available on your system. If it is not then you'll be able
to find binaries at:
<ul><i><a href="http://www.freesoftware.com/pub/infozip/">http://www.freesoftware.com/pub/infozip/</a></i>
<i><a href="http://www.freesoftware.com/pub/infozip/"></a></i></ul>
being available on your system. If it is not then you'll be able to find
binaries at:
<ul><i><a href="http://www.freesoftware.com/pub/infozip/">http://www.freesoftware.com/pub/infozip/</a></i></ul>
<br><li>src/osgPlugins/tgz</li>
<li>
src/osgPlugins/tgz</li>
<br>The tgz compressed archive plugin depends upon the unzip executable
being available on your system. If it is not then you'll be able
to find binaries at:
being available on your system. If it is not then you'll be able to find
binaries at:
<ul><i><a href="http://www.gzip.org/">http://www.gzip.org/</a></i>
<br><a href="ftp://prep.ai.mit.edu/pub/gnu/tar/">ftp://prep.ai.mit.edu/pub/gnu/tar/</a>
<a href="ftp://prep.ai.mit.edu/pub/gnu/tar/"></a></ul>
<br><a href="ftp://prep.ai.mit.edu/pub/gnu/tar/">ftp://prep.ai.mit.edu/pub/gnu/tar/</a></ul>
<br><li>src/osgPlugins/osgtgz</li>
<li>
src/osgPlugins/osgtgz</li>
<br>Has the same dependencies as the tgz plugin above.</ul>
</body>
</html>

View File

@ -1,84 +1,107 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.75C-SGI [en] (X11; I; IRIX64 6.5 IP27) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>OSG Documentation</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2>
<u>Index</u></b></h2>
<u>Index</u></h2>
<table>
<tr>
<td><a href="introduction.html">Introduction</a> </td>
<td>Introduction to Scene Graph in general, the OpenSceneGraph project itself and how to use it.</td>
</td>
<tr>
<td><a href="introduction.html">Introduction</a></td>
<tr>
<td><a href="contents.html">Contents</a> </td>
<td>A list of the directories in the distribution.</td>
</td>
<td>Introduction to Scene Graph in general, the OpenSceneGraph project
itself and how to use it.</td>
</tr>
<tr>
<td><a href="install.html">Install</a> </td>
<td>A guide of how to compile and install on all the supported platforms.</td>
</td>
<tr>
<td><a href="contents.html">Contents</a></td>
<tr>
<td><a href="dependencies.html">Dependencies</a> </td>
<td>Listing of all the dependancies of the project, with links of where to download them.</td>
</td>
<td>A list of the directories in the distribution.</td>
</tr>
<tr>
<td><a href="demos.html">Demos</a> </td>
<td>Thumbnails and info on all the demo applications which come with this distribution.</td>
</td>
<tr>
<td><a href="install.html">Install</a></td>
<tr>
<td><a href="data.html">Data</a> </td>
<td>List of websites where one can download interesting and useful data from.</td>
</td>
<td>A guide of how to compile and install on all the supported platforms.</td>
</tr>
<tr>
<td><a href="sgv.html">Viewer</a> </td>
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and the rest of demos.</td>
</td>
<tr>
<td><a href="dependencies.html">Dependencies</a></td>
<tr>
<td><a href="stereo.html">Stereo</a> </td>
<td>Documentation on the commandline paramters and environmential variables which control stereo.</td>
</td>
<td>Listing of all the dependencies of the project, with links of where
to download them.</td>
</tr>
<tr>
<td><a href="plan.html">Plan</a> </td>
<td>Details of development plans.</td>
</td>
<tr>
<td><a href="demos.html">Demos</a></td>
<tr>
<td><a href="documentation.html">Reference Guides</a> </td>
<td>Reference guides of the core libraries.</td>
</td>
<td>Thumbnails and info on all the demo applications which come with this
distribution.</td>
</tr>
<tr>
<td><a href="data.html">Data</a></td>
<td>List of websites where one can download interesting and useful data
from.</td>
</tr>
<tr>
<td><a href="sgv.html">Viewer</a></td>
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and
the rest of demos.</td>
</tr>
<tr>
<td><a href="stereo.html">Stereo</a></td>
<td>Documentation on the commandline parameters and environmental variables
which control stereo.</td>
</tr>
<tr>
<td><a href="plan.html">Plan</a></td>
<td>Details of development plans.</td>
</tr>
<tr>
<td><a href="documentation.html">Reference Guides</a></td>
<td>Reference guides of the core libraries.</td>
</tr>
</table>
</body>

View File

@ -2,54 +2,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.6 [en-gb]C-CCK-MCD NetscapeOnline.co.uk (Win95; I) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Installation instructions</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2><u>Compiling and installing the OpenSceneGraph</u></h2>
<p>
The scene graph depends upon Standard C++, STL and OpenGL so you need
a C++ compiler up to the task and OpenGL or Mesa installed. The viewer
depends upon GLUT which you'll need to download and install from the GLUT
website. The OSG has it own native ascii file format, and .rgb image reader
inbuilt which allows you read the example data with any dependencies other
than C++, STL and OpenGL.
</p>
<p>
The osgText library adds the dependency of the freetype library
for support of true type fonts, however it is not essential to the core
library, so you can comment it out from compilation by modifying the src/Makefile,
<h2>
<u>Compiling and installing the OpenSceneGraph</u></h2>
The scene graph depends upon Standard C++, STL and OpenGL so you need a
C++ compiler up to the task and OpenGL or Mesa installed. The viewer depends
upon GLUT which you'll need to download and install from the GLUT website.
The OSG has it own native ascii file format, and .rgb image reader inbuilt
which allows you read the example data with any dependencies other than
C++, STL and OpenGL.
<p>The osgText library adds the dependency of the freetype library for
support of true type fonts, however it is not essential to the core library,
so you can comment it out from compilation by modifying the src/Makefile,
and src/Demos/Makefile. I you wish to use fonts then you can download freetype
from www.freetype.org. The osgText library also requires an up to date
GLU implementation which supports GLU1.2 tessellation routines. If you
your current GLU is out of date you'll need to download the latest, for
instance the sgi's sample implementation for GLU from the www.opengl.org
website.
</p>
<p>
The OSG also has a set of plug-ins which support non-native 3d database
<p>The OSG also has a set of plug-ins which support non-native 3d database
and image formats, several have no dependencies on external libraries (flt,3ds,obj,
lwo,dw, tga &amp; pic), while others (pfb,jpeg,gif,tiff) require other
libraries to be installed to compile them. If you don't already have them
@ -60,146 +61,143 @@ only and if they are required to load a specific data set. If you don't
need them for your datasets then it won't matter that you haven't been
able to compile all the plug-ins. A full list of dependencies and where
to download the required libraries are listed in the
<i><a href="dependencies.html">
dependencies.html</a></i>
</p>
<p>
If you're coming across the OSG for the first time and want to get started
<i><a href="dependencies.html">dependencies.html</a></i>
<p>If you're coming across the OSG for the first time and want to get started
quickly, go right ahead and follow the compilation instructions. You can
always later download the libraries which the plug-ins require if you eventually
need them.
</p>
<ul>
<li><a href="#Compiling under Windows with Visual Studio">Compiling under Windows with Visual Studio</a></li>
<br>
<li>
<a href="#Compiling under Windows with Visual Studio">Compiling under Windows
with Visual Studio</a></li>
<li>Compiling under Unix (including Mac OSX and Cygwin)</li>
<br>
<li>
Compiling under Unix (including Mac OSX and Cygwin)</li>
<p>
Building the OSG requires 'gmake', due to the extensive use of gmake directives
in the Makefiles. You can get gmake from here if you don't already have
it installed: http://www.gnu.org/software/make/
</p>
<p>
Almost all of the unix compling is done simply with <b>make; make install</b> with <b>make help</b> to bring up help.
For platform specific details:
</p>
<p><br>Building the OSG requires 'gmake', due to the extensive use of gmake
directives in the Makefiles. You can get gmake from here if you don't already
have it installed: http://www.gnu.org/software/make/
<p>Almost all of the unix compiling is done simply with <b>make; make install</b>
with <b>make help</b> to bring up help. For platform specific details:
<ul>
<li><a href="#Cygwin">Cygwin</a></li>
<li><a href="#Linux">Linux</a></li>
<li><a href="#Free BSD">Free BSD</a></li>
<li><a href="#Mac OSX">Mac OSX</a></li>
<li><a href="#IRIX">IRIX</a></li>
<li><a href="#Solaris">Solaris</a></li>
<li>
<a href="#Cygwin">Cygwin</a></li>
<li>
<a href="#Linux">Linux</a></li>
<li>
<a href="#Free BSD">Free BSD</a></li>
<li>
<a href="#Mac OSX">Mac OSX</a></li>
<li>
<a href="#IRIX">IRIX</a></li>
<li>
<a href="#Solaris">Solaris</a></li>
</ul>
</ul>
<hr>
<h3>
<u><a name="Compiling under Windows with Visual Studio">Compiling under Windows with Visual Studio.</a></u></h3>
<p>The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw located
<a NAME="Compiling under Windows with Visual Studio"></a><u>Compiling under
Windows with Visual Studio.</u></h3>
The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw located
in the VisualStudio below the OSG this root directory. The OSG will compile
with the basic VisualC++6.0, but, and this is a big but, the STL version which
comes with VisualC++6.0 is extremely buggy and unable to handle things even
as simple as std::mamp without crashing, even the latest severice packs (which are
recommended won't fix the STL bugs). This is a problem for the OpenSceneGraph
since it makes proper use of Standard C++. One can struggle on with the MS's
and expect crashes and optimization disabled, or adopt one of the follwing:
with the basic VisualC++6.0, but, and this is a big but, the STL version
which comes with VisualC++6.0 is extremely buggy and unable to handle things
even as simple as std::mamp without crashing, even the latest service packs
(which are recommended won't fix the STL bugs). This is a problem for the
OpenSceneGraph since it makes proper use of Standard C++. One can struggle
on with the MS's and expect crashes and optimization disabled, or adopt
one of the following:
<ol>
<li> Visual Studio .NET </li>
<li> Dinkumware's STL bug fix patches - <a href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a>.</li>
<li> STLport - <a href="http://www.stlport.org">http://www.stlport.org</a></li>
<li>
Visual Studio .NET</li>
<li>
Dinkumware's STL bug fix patches - <a href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a>.</li>
<li>
STLport - <a href="http://www.stlport.org">http://www.stlport.org</a></li>
</ol>
</p>
<p>The OSG is composed of a number of scene graph libraries (with Core in front of the project names),
executables (with Demos in front of the project names), and plugins which read and write 3D data formats
and 2D image formats. To get the OSG running you'll need at least to compile Core osg,osgUtil,osgDB,osgGLUT,
osgPlugin dot_osg and Demo sgv. The rest of the libraries and executables are optional and can
be compiled if you need them, however for simplicity I would recommend
doing a batch build of all the libraries and executables in the distribution,
some of the plug-ins which support non native file formats may not compile
due to dependencies on other libraries (such as libpng), you can ignore
these compilation errors unless you need to load the related file types. To help
the compilationon the plugins, osgGLUT and osgText one can download .zip
archive will all the dependancies in it. Further details on this .zip file can
be found in <i><a href="dependencies.html">dependencies.html</a></i>
</p>
The OSG is composed of a number of scene graph libraries (with Core in
front of the project names), executables (with Demos in front of the project
names), and plugins which read and write 3D data formats and 2D image formats.
To get the OSG running you'll need at least to compile Core osg,osgUtil,osgDB,osgGLUT,
osgPlugin dot_osg and Demo sgv. The rest of the libraries and executables
are optional and can be compiled if you need them, however for simplicity
I would recommend doing a batch build of all the libraries and executables
in the distribution, some of the plug-ins which support non native file
formats may not compile due to dependencies on other libraries (such as
libpng), you can ignore these compilation errors unless you need to load
the related file types. To help the compilation the plugins, osgGLUT and
osgText one can download .zip archive will all the dependencies in it.
Further details on this .zip file can be found in <i><a href="dependencies.html">dependencies.html</a></i>
<p>To execute the viewer the file path for the .dll's and .exe, both compiled
into the OSG's bin directory, need to be setup, such as by adding the PATH
to your autoexec.bat, its also useful to add the OSGFILEPATH to your autoexec.bat
to help the location of datafiles. For example :
</p>
<p>SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images</p>
<p>SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images
<br>SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\osg-0.8.43\bin;
<p>To help compilation of the image reader plugins, various image libraries
have been zipped up for your convienice, your find these on the OSG release
have been zipped up for your convenience, your find these on the OSG release
download directory.
<h3>
Using Visual Studio .NET</h3>
<p>
Looks like Microsoft have eventually got their act together on the compiler front,
the compiler looks Standard C++ compilient with a solid STL implement, so this is
the recommend route.</p>
Looks like Microsoft have eventually got their act together on the compiler
front, the compiler looks Standard C++ compliant with a solid STL implement,
so this is the recommend route.
<h3>
Using Dinkumware STL</h3>
<p>
The basic jist is that you'll need to download their STL implementation, and follow their
instructions of how toforce VisualStudio to pick up the new STL implementation. More details
at <a href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a>.
</p>
<p>
Once it is installed everything should compile fine and not crash, but you won't be running at full
speed since the build #odef's out some important state optimizations since the basic VisualStudio
can't handle it. You can safely remove the #ifdef from src/osgUtil/Otimizer.cpp, Line 44.
The #ifdef is smart enough to do this automatically when using VIsualStudio .NET and STLport so that
modification by hand won't be required. Unfortunately there doesn't seem to be a special define associated
with the Dinkumware STL for the #ifdef to pick up on.
</p>
<h3>Using STLport</h3>
</p>
The basic jist is that you'll need to download their STL implementation,
and follow their instructions of how to force VisualStudio to pick up the
new STL implementation. More details at <a href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a>.
<p>Once it is installed everything should compile fine and not crash, but
you won't be running at full speed since the build #ifdef's out some important
state optimizations since the basic VisualStudio can't handle it. You can
safely remove the #ifdef from src/osgUtil/Otimizer.cpp, Line 44. The #ifdef
is smart enough to do this automatically when using VisualStudio .NET and
STLport so that modification by hand won't be required. Unfortunately there
doesn't seem to be a special define associated with the Dinkumware STL
for the #ifdef to pick up on.
<h3>
Using STLport</h3>
The OSG has been tested under Windows with STLport-4.5, which allows the
users to configure the type of STL support required for STLport itself.
The key configuration that the OSG needs to do is to enable the wrapping
of MS's own iostreams, than using STLport's own implementation. The later
is not required because this has not be problematic under Windows, it is
only the container classes and algorithms that need replacing (thanks to
MS's utterly hopeless implementation of these). Using the iostream wrappping
MS's utterly hopeless implementation of these). Using the iostream wrapping
option means the STLport can just be used on your include path, there is
no need to compile STLport itself, or link into any special libraries.
To configure STLport simply comment IN (its commented out by default),
the follwing line from STLport-4.5/stlport/stl_user_config.h so it should
the following line from STLport-4.5/stlport/stl_user_config.h so it should
look: # define _STLP_NO_OWN_IOSTREAMS 1 Then configure the includes path
in Visual Studio to pick up on STLport: Select the "Tools" menu. Select
"Options" In the Options dialog, select the "Directories" tab Under the
"include" option, add the path to STLport4.5, something like: D:/STLport4.5/stlport
Then press the up array to move the entry all the way to the top of the
list, thus overriding MS's own STL implementations.
</p>
<hr>
<h3><u><a name="Linux">Compiling under Linux</a></u></h3>
<h3>
<a NAME="Linux"></a><u>Compiling under Linux</u></h3>
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type:
<blockquote><tt>%&nbsp;make install</tt></blockquote>
<blockquote><tt>% make install</tt></blockquote>
or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote>
<blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote>
<blockquote><tt>% make help</tt></blockquote>
(highly recommended)
<p>The osgText library now depends upon GLU1.3 functionality, and only
the recent Mesa version have this as stanadard. Unfortnately not all Linux
distribtions are upto date even recent ones. If you have problems compiling
the recent Mesa version have this as standard. Unfortunately not all Linux
distributions are up to date even recent ones. If you have problems compiling
osgText due to GLU problems then check out the details at the bottom of
this file, under the title RedHat7.1 &amp; GLU1.3 for a quick way of installing
GLU1.3 in the right place.
@ -226,63 +224,58 @@ a README in the tarball with some info on what the script actually does.
There's nothing wrong with OSG itself; the problem with Redhat 7.2 is that
it doesn't have GLU 1.3 by default, which OSG is now dependent on (for
osgText.) Good luck everyone. - Clay
<br>
<br>
<p>
<hr>
<h3><u><a name="Free BSD">Compiling under FreeBSD</a></u></h3>
<h3>
<a NAME="Free BSD"></a><u>Compiling under FreeBSD</u></h3>
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type:
<blockquote><tt>%&nbsp;make install</tt></blockquote>
<blockquote><tt>% make install</tt></blockquote>
or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote>
<blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote>
<blockquote><tt>% make help</tt></blockquote>
(highly recommended)
<br>
<br>
<p>
<hr>
<h3><u><a name="IRIX">Compiling under IRIX</a></u></h3>
<h3>
<a NAME="IRIX"></a><u>Compiling under IRIX</u></h3>
Since the OSG uses Standard C++ features such as STL it is important to
have an up to date version of the MIPSPro compilers, ie. 7.3 or later.
Support for MIPSPro7.2.1 has now been dropped since it was becoming to
unwildy to support and is very rarely used in the OSG commiunity. It is
unwildy to support and is very rarely used in the OSG community. It is
recommended to use MIPSPro7.3.1.1m.
<p>Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type:
<blockquote><tt>%&nbsp;make install</tt></blockquote>
<blockquote><tt>% make install</tt></blockquote>
or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote>
<blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote>
<blockquote><tt>% make help</tt></blockquote>
(highly recommended)
<br>
<hr>
<h3><u><a name="Solaris">Compiling under Solaris</a></u></h3>
<h3>
<a NAME="Solaris"></a><u>Compiling under Solaris</u></h3>
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type:
<blockquote><tt>%&nbsp;make install</tt></blockquote>
<blockquote><tt>% make install</tt></blockquote>
or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote>
<blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote>
<blockquote><tt>% make help</tt></blockquote>
(highly recommended)
<br>
<hr>
<h3><u><a name="Mac OSX">Compiling under MacOS X (instructions written by Phil Atkin)</a></u></h3>
<h3>
<a NAME="Mac OSX"></a><u>Compiling under MacOS X (instructions written
by Phil Atkin)</u></h3>
For anyone who's ever used a Unix box for development it really is so simple
it's insane.
<p>You need to have installed the Developer tools from the CD that comes
@ -293,7 +286,7 @@ OS rather than the Aqua gloss. The Mac comes with an app in Applications/Utiliti
called Terminal - open up any Finder window (e.g double-click on your hard
disk icon), click on the Applications icon at the top right of the window,
then click on the Utilities folder to get access to all the grubby apps
which give away the real OS roots underneath the shiny paintwork. Anyone
which give away the real OS roots underneath the shiny paint work. Anyone
developing will need Terminal so much they should put it in their Dock.
You do that by grabbing the icon of the app in the Utilities folder and
dragging it to the bottom of your screen, at which point the other app
@ -309,7 +302,7 @@ folder of the harddisk the machine booted from).
filename that the Mac won't let you see from the Finder or in fact generate
from an app, so I used vi to create that. Then I just went
<p>cd $OSGHOME
<blockquote><tt>%&nbsp;make clean</tt>
<blockquote><tt>% make clean</tt>
<br><tt>% make macosx</tt></blockquote>
<p><br>And it sounds too good to be true but it is that simple. It's worth
@ -323,11 +316,9 @@ built osg rgb 3ds and a couple others - will check and get back to you.
account on the machine, which by default is switched off as the machines
ship for security reasons. Rather than typing in and risking error through
paraphrase, here is a link to a site which tells you how to do this -
<blockquote><a href="http://www.macos.utah.edu/Documentation/macosx/security/enablerootuser.html
">http://www.macos.utah.edu/Documentation/macosx/security/enablerootuser.html</a></blockquote>
<blockquote><a href="http://www.macos.utah.edu/Documentation/macosx/security/enablerootuser.html">http://www.macos.utah.edu/Documentation/macosx/security/enablerootuser.html</a></blockquote>
Or alternately,
<blockquote><a href="http://www.thinkmacintosh.com/osxfaq.html
">http://www.thinkmacintosh.com/osxfaq.html</a></blockquote>
<blockquote><a href="http://www.thinkmacintosh.com/osxfaq.html">http://www.thinkmacintosh.com/osxfaq.html</a></blockquote>
<p><br>One you have a root account enabled, you have to su root you cd
to the directory which the Fink installer generates, and it puts libdl.a
@ -341,27 +332,24 @@ but at the point it tries to use GLUT to open a window it falls over with
a CGS error (which is I think Core Graphics System). If you explicitly
go bin/hangglide it works fine. Weird, it may be an OS X 10.04 issue which
is gone in 10.1 or it may be a weirdy in the Mac GLUT implementation, but
forewarned is forearmed.
forewarned is forearmed.&nbsp;
<hr>
<h3><u><a name="Cygwin">Compiling under Cygwin</a></u></h3>
<h3>
<a NAME="Cygwin"></a><u>Compiling under Cygwin</u></h3>
To compile, from the OSG root directory, type: make Note, make should automatically
detect your system and build optimized targets for your system. And if
you wish to install the OSG type: make install Note that make symbolic
links don't seem to work under cygwin, so a make instlinks will simply
copy files just like make install. 'make install' places all files in /usr/local/OpenSceneGraph
under appropriate subdirectories. To get full details of make options,
under appropriate sub directories. To get full details of make options,
type: make help (highly recommended)
<p>OSGFILEPATH environmental variable
<p>For the OSG to locate file data files easily an environmetal variable
OSGFILEPATH is used at run-time by the osgDB library. Note, for examples
<p>OSG_FILE_PATH environmental variable
<p>For the OSG to locate file data files easily an environmental variable
OSG_FILE_PATH is used at run-time by the osgDB library. Note, for examples
below substitute in the ${OSGDATA} directory with your own path where appropriate)
Add the following to your .cshrc (note paths seperated by colon's): setenv
OSGFILEPATH ./:${OSGDATA}:${OSGDATA}/Images Or the following if you're
using a sh compatible shell : export OSGFILEPATH=./:${OSGDATA}:${OSGDATA}/Images:
Or under windows (note paths seperated by semi-colon's) : SET OSGFILEPATH=./:${OSGDATA};${OSGDATA}/Images
Add the following to your .cshrc (note paths separated by colon's): setenv&nbsp;
OSG_FILE_PATH ./:${OSGDATA}:${OSGDATA}/Images Or the following if you're
using a sh compatible shell : export&nbsp; OSG_FILE_PATH=./:${OSGDATA}:${OSGDATA}/Images:
Or under windows (note paths seperated by semi-colon's) : SET&nbsp; OSG_FILE_PATH=./:${OSGDATA};${OSGDATA}/Images
</body>
</html>

View File

@ -7,21 +7,30 @@
</head>
<body bgcolor="#FFFFFF">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" BORDER=0 height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2>
@ -62,9 +71,7 @@ scientific and commercial visualization, training through to modeling programs.
<h3>
<u>Why use a Scene Graph - Performance, Productivity, Portability and Scalability</u>.</h3>
<ol>
<li><p>
<i>Performance</i> - scene graphs provide an excellent framework for
<ol><i>Performance</i> - scene graphs provide an excellent framework for
maximize graphics performance. A good scene graph employs two key techniques
- culling of the objects that won't be seen on screen, and state sorting
of properties such as textures and materials so that all similar objects
@ -76,12 +83,10 @@ with just a few operations! Without state sorting, the the buses and GPU
will thrash between states, stalling the graphics and destroying graphics
throughout. As GPU's get faster and faster, the cost of stalling the graphics
is also going up, so scene graph are become ever more important.
</p></li>
<li><p>
<i>Productivity</i> - scene graphs take much of the hard work required
<p><i>Productivity</i> - scene graphs take much of the hard work required
to develop high performance graphics applications. The scene graphs manage
all the graphics for you, reducing what would be thousands of lines of
OpenGL down to a few simple calls. Furthermoe, one of most powerful concepts
OpenGL down to a few simple calls. Furthermore, one of most powerful concepts
in Object Orientated programming is that of object composition, enshrined
in <i>Composite Design Pattern</i>, which fits the scene graph tree structure
perfectly which makes it highly flexible and reusable design - in real
@ -91,25 +96,19 @@ helping users set up and manage graphics windows to import of 3d modes
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!
</p></li>
<li><p>
<i>Portability</i> - scene graphs encapsulate much of the lower level
<p><i>Portability</i> - scene graphs encapsulate much of the lower level
tasks of rendering graphics and reading and writing data, reducing or 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
platform can be a simple as recompiling your source code.
</p></li>
<li><p>
<i>Scalability</i> - along with being able to dynamic manage the complexity
<p><i>Scalability</i> - along with being able to dynamic manage the complexity
of scenes automatically to account for differences in graphics performance
across a range of machines, scene graphs also make it much easier to manage
complex hardware configurations, such as clusters of graphics machines,
or multiprocessor/multipipe systems such as SGI's Onyx. A good scene graph
will allow the developer to concentrate on developing their own application
while the rendering framework of the scene graph handles the different
underlying hardware configurations.
</p></li>
</ol>
underlying hardware configurations.</ol>
<hr>
<h3>
@ -124,9 +123,7 @@ development model to provide a development library that is legacy free
and well focused on the solving the task. The OpenSceneGraph delivers on
the four key benefits of scene graph technology outlined above using the
following features:
<ol>
<li><p>
<i>Performance</i> - supports view frustum culling, small feature culling,
<ol><i>Performance</i> - supports view frustum culling, small feature culling,
Level Of Details (LOD') nodes, state sorting, vertex arrays and display
list as part of the core scene graph, these together make the OpenSceneGraph
one highest performance scene graph available. User feedback is that performance
@ -137,9 +134,7 @@ 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 both Vterrain.org and TerrainEngine.com which both integrate
with the OpenSceneGraph.
</p></li>
<li><p>
<i>Productivity</i> - by combining lessons learned from established
<p><i>Productivity</i> - by combining lessons learned from established
scene graph like Performer and Open Inventor, with modern software engineering
methodologies like Design Patterns and a great deal of feedback early on
in the development cycle, it has been possible to design a design that
@ -148,13 +143,10 @@ to the OpenSceneGraph and to integrate with their own applications. With
a full feature set in the core scene graph, utilities to set up the scene
graph and viewers and a wide range of loaders it is possible to create
an application and bring in user data with a very small amount of code.
</p></li>
<li><p>
<i>Portability</i> - The core scene graph has also been designed to
<p><i>Portability</i> - The core scene graph has also been designed to
be have minimal platform specific dependency, requiring little more than
Standard C++ and OpenGL. The has allowed the scene graph to be rapidly
ported on wide range of platforms -
originally developed on IRIX, then
ported on wide range of platforms - originally developed on IRIX, then
ported to Linux, then to Windows, then FreeBSD, then Mac OSX and most recently
Solaris! Being completely windowing system independent makes it easy for
users to add their own window specific libraries and applications on top.
@ -162,22 +154,18 @@ In the distribution there is already the osgGLUT library, and in the Bazaar
found at openscenegrph.org/download/ once can find examples of how applications
written on top Qt, MFC, WxWindows and SDL. Users have also integrated it
with Motif, and X.
</p></li>
<li><p>
<i>Scalability</i> - the scene graph not only runs from portables all the
way up to Onyx Infinite Reality Monsters, it supports the multiple graphics
subsystems found on machines like the a mulitpipe Onyx. This is possible
since the core scene graph supports multiple graphics context for both
OpenGL DisplayLists and texture objects, and the cull and draw traversals
have been designed to cache rendering data locally and use the scene gaph
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.
This has been demonstrated using the OpenSceneGraph in conjunction with
sgi's OpenGL multipipe SDK. We also have osgMP in development which will
be cross platform and transparently support multiple multipipe systems
like the Onyx and graphics clusters
</p></li>
</ol>
<p><i>Scalability</i> - the scene graph not only runs from portables all
the way up to Onyx Infinite Reality Monsters, it supports the multiple
graphics subsystems found on machines like the a mulitpipe Onyx. This is
possible since the core scene graph supports multiple graphics context
for both OpenGL DisplayLists and texture objects, and the cull and draw
traversals have been designed to cache rendering data locally and use the
scene gaph 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. This has been demonstrated using the OpenSceneGraph in conjunction
with sgi's OpenGL multipipe SDK. We also have osgMP in development which
will be cross platform and transparently support multiple multipipe systems
like the Onyx and graphics clusters</ol>
All the source to is published under the GNU Library General Public License
(LGPL) which allows both open source and closed source projects to use,
modify and distribute it freely as long its usage complies with the LGPL.
@ -219,13 +207,15 @@ for using the developers using the OpenSceneGraph.
<p>The source distribution contains the all the source and include files
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
to track down and fix any problems that you come across.
to
track down and fix any problems that you come across.
<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
on your system. You may also need to download libraries that parts of the
OpenSceneGraph is dependent upon such as glut, check the
<a href="dependencies.html">dependencies</a>
OpenSceneGraph is dependent upon such as glut, check the <a href="dependencies.html">dependencies</a>
list for further details.
<p>For full instructions of how to run the demos read the <a href="demos.html">demos</a>
page.
<br>
<hr>
<h3>

View File

@ -2,111 +2,126 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.6 [en-gb]C-CCK-MCD NetscapeOnline.co.uk (Win95; I) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Plans for future developments</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2>
<u>Plans for future developments</u></h2>
The plan for the next release after 0.8.45 is to from alpha (all 0.8 series
version) to beta for the next release, at this point will bump the version
number up to 0.9.0 and all subsequent 0.9 releases will be beta, up till
the release of 1.0. The current goal is to move to beta in early summer,
with 1.0 in late summer, with SIGGRAPH being a possibility.
<h3>
Features planed for the next release (0.9.0) include:</h3>
<h2><u>Plans for future developments</u></h2>
<p>
The plan for the next release after 0.8.45 is to from alpha (all 0.8 series version) to beta for the next release,
at this point will bump the version number up to 0.9.0 and all subsequent 0.9 releases will be beta, uptill the
release of 1.0. The current goal is to move to beta in early summer, with 1.0 in late summer, with SIGGRAPH
being a possibility.
</p>
<h3>Features planed for the next release (0.9.0) include:</h3>
<ul>
<li>
New osg::Geometry drawable to deprecate osg::GeoSet, the new Geometry class
will support multiple text coords, use std::vector<> for easy management of
attributes.and support gl extensions to provide greater polygon performance.
</li>
will support multiple text coords, use std::vector&lt;> for easy management
of attributes and support gl extensions to provide greater polygon performance.</li>
<li>
Multi-texturing support in osg::Texture. osg::TexMat, osg::TexGen.
</li>
Multi-texturing support in osg::Texture. osg::TexMat, osg::TexGen.</li>
<li>
Multi-pass fallback for when multi-texturing is not supported.
</li>
Multi-pass fallback for when multi-texturing is not supported.</li>
<li>
Clean up the API for managing multi-stage and multi-pass rendering within the scene graph.
</li>
Clean up the API for managing multi-stage and multi-pass rendering within
the scene graph.</li>
<li>
Replace osgGLUT with a cleaner windowing API for the demos, move osgGLUT
out of the distribution and into the bazaar.
</li>
out of the distribution and into the bazaar.</li>
<li>
Introduce a new library osgGA, which acts as GUI abstraction layer, move the
current osgUtil camera manipulators into osgGA.</li>
Introduce a new library osgGA, which acts as GUI abstraction layer, move
the current osgUtil camera manipulators into osgGA.</li>
<li>
Introduce a new library osgEnv/osgShapes, which adds support for creating shapes and
environmental effects such as stars, planats, cloud layers and ground planes.
</li>
Introduce a new library osgEnv/osgShapes, which adds support for creating
shapes and environmental effects such as stars, planets, cloud layers and
ground planes.</li>
<li>
Integrate unit tests for all classes, and develop a test suite.
</li>
Integrate unit tests for all classes, and develop a test suite.</li>
</ul>
<h3>Books, tutorials and demostrations</h3>
<h3>
Books, tutorials and demonstrations</h3>
<ul>
<li>
Don Burns and Robert Osfield to write the OpenSceneGraph book!</li>
<li>
Development of tutorials to published as part of the distribution and on the bazaar</li>
Development of tutorials to published as part of the distribution and on
the bazaar</li>
<li>
Development of technoglogy demonstrations for shows, presentations and training.</li>
Development of technology demonstrations for shows, presentations and training.</li>
</ul>
<h3>Development of commerical add on libraries:</h3>
<h3>
Development of commercial add on libraries:</h3>
<ul>
<li>
osgMP - cross platform library for transparently managing mulitpipe and
cluster graphics systems. Similar in concept to OpenGL multipipe SDK, except
cross platform and with support of graphics clusters.</li>
<li>
osgMP - cross platfrom library for transparently managing mulitpipe and
cluster graphics systems. Similar in concept to OpenGL multipipe SDK, except cross
platform and with support of graphics clusters.
</li>
<li>
osgLP - cross platform libary for support for light points.</li>
osgLP - cross platform library for support for light points.</li>
</ul>
<h3>Professional services</h3>
<h3>
Professional services</h3>
<ul>
<li>
Set up a support contract and support systems for confidential, email,
phone and onsite support.</li>
<li>
Set up a support contract and support systems for confidential,
email, phone and onsite support.</li>
<li>
Set up the Open Scene Graph Professional License (OSGPL) which is
conventional propriatary license.that allows companies to distribute
projects that do not comply wiht the terms of the LGPL, such as turn
key systems.</li>
Set up the Open Scene Graph Professional License (OSGPL) which is conventional
proprietary license that allows companies to distribute projects that do
not comply with the terms of the LGPL, such as turn key systems.</li>
<li>
Develop training courses.</li>
</ul>
For further details on osgMP, osgLP, OSGPL licensing, professional support, training and consultancy
services contact Robert Osfield at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a> or
Don Burns at <a href="mailto:don@andesengineering.com">don@andesengineering.com.</a>
For further details on osgMP, osgLP, OSGPL licensing, professional support,
training and consultancy services contact Robert Osfield at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a>
or Don Burns at <a href="mailto:don@andesengineering.com">don@andesengineering.com.</a>
</body>
</html>

View File

@ -2,228 +2,305 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.75C-SGI [en] (X11; I; IRIX64 6.5 IP27) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Native stereo support</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a> </td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td>
<td><a href="sgv.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>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</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="demos.html">Demos</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="sgv.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>
<h2><u>Native Support for Stereo</u></h2>
<p>The OSG has support for anaglyphic stereo
(i.e. red/green or red/cyan glasses), quad buffered stereo (i.e. active stereo using shutter glasses,
or passive stereo using polarized projectors & glasses) and horizontal and vertical split window stereo implementations.
Almost all OSG applications have the potential for stereo support simply by setting the relevant environmental variables, or via command line arguments. Little or no code changes will be required, the support is
handled transparently inside osgUtil::SceneView's handling of rendering.It is a simple as:
</p>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
<p>If the user is planning to use head tracked stereo, or a cave then it is currently recommend to set it
up via a VR toolkit such as VRjuggler, in this case refer to the VR toolkits handling of stereo, and keep
all the OSG's stereo specific environment variables (below) set to OFF, or set the values to off within own
your own applications.
</p>
<h2>
<u>Native Support for Stereo</u></h2>
The OSG has support for anaglyphic stereo (i.e. red/green or red/cyan glasses),
quad buffered stereo (i.e. active stereo using shutter glasses, or passive
stereo using polarized projectors &amp; glasses) and horizontal and vertical
split window stereo implementations. Almost all OSG applications have the
potential for stereo support simply by setting the relevant environmental
variables, or via command line arguments. Little or no code changes will
be required, the support is handled transparently inside osgUtil::SceneView's
handling of rendering. It is a simple as:
<br><b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
<p>If the user is planning to use head tracked stereo, or a cave then it
is currently recommend to set it up via a VR toolkit such as VRjuggler,
in this case refer to the VR toolkits handling of stereo, and keep all
the OSG's stereo specific environment variables (below) set to OFF, or
set the values to off within own your own applications.
<br>
<hr>
<h3>The environmental variables of interest:</h3>
<h3>
The environmental variables of interest:</h3>
<table>
<tr>
<td><b>OSG_STEREO</b></td>
<td><b>ON</b> </td>
<td>Turn stereo on </td>
</tr>
<tr>
<td></td>
<td><b>OFF</b></td>
<td>Turn stereo off (default). </td>
</tr>
<tr>
<td><b>OSG_STEREO_MODE</b></td>
<td><b>ANAGLYPHIC</b> </td>
<td>Use anaglyphic stereo when in stereo (default). </td>
</tr>
<tr>
<td></td>
<td><b>QUAD_BUFFER</b> </td>
<td>Use quad buffered stereo when in stereo. </td>
</tr>
<tr>
<td></td>
<td><b>HORIZONTAL_SPLIT</b> </td>
<td>Use horizontal split stereo mode when in stereo </td>
</tr>
<tr>
<td></td>
<td><b>VERTICAL_SPLIT</b> </td>
<td>Use vertical split stereo mode when in stereo </td>
</tr>
<tr>
<td><b>OSG_SCREEN_DISTANCE</b> </td>
<td><b>0.50</b> </td>
<td>Set the distance the viewer is from screen in metres (default shown) </td>
</tr>
<tr>
<td><b>OSG_SCREEN_HEIGHT</b> </td>
<td><b>0.26</b> </td>
<td>Set the height if image on the screen in metres (default shown) </td>
</tr>
<tr>
<td><b>OSG_EYE_SEPERATION</b> </td>
<td><b>0.06</b> </td>
<td>Set the eye seperation - interoccular distance (default shown.) </td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_HORIZONTAL_SEPERATION</b> </td>
<td><b>42</b> </td>
<td>Set the number of pixels betweent the left and right viewports (default shown).</td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_HORIZONTAL_EYE_MAPPING</b> </td>
<td><b>LEFT_EYE_LEFT_VIEWPORT</b> </td>
<td>Set the left eye to render to left viewport, right eye to right viewport (default). </td>
</tr>
<tr>
<td></td>
<td><b>LEFT_EYE_RIGHT_VIEWPORT</b> </td>
<td>Set the left eye to render to right viewport, right eye to left viewport. </td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_VERTICAL_SEPERATION</b> </td>
<td><b>42</b> </td>
<td>Set the number of pixels betweent the top and bottom viewports (default shown).</td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_VERTICAL_EYE_MAPPING</b> </td>
<td><b>LEFT_EYE_TOP_VIEWPORT</b> </td>
<td>Set the left eye to render to top viewport, right eye to bottom viewport (default). </td>
</tr>
<tr>
<td></td>
<td><b>LEFT_EYE_BOTTOM_VIEWPORT</b> </td>
<td>Set the left eye to render to bottom viewport, right eye to top viewport. </td>
</tr>
</table>
<tr>
<td><b>OSG_STEREO</b></td>
<hr>
<td><b>ON</b></td>
<h3>Command line arguments can be used to override these settings:</h3>
<td>Turn stereo on&nbsp;</td>
</tr>
<table>
<tr>
<td><b>-stereo</b> </td>
<td><b></b> </td>
<td>Switch on stereo. </td>
</tr>
<tr>
<td><b>-stereo</b></td>
<td><b>ON</b> </td>
<td>Switch on stereo. </td>
</tr>
<tr>
<td></td>
<td><b>OFF</b> </td>
<td>Switch off stereo. </td>
</tr>
<tr>
<td></td>
<td><b>ANAGLYPHIC</b> </td>
<td>Switch on ANAGLYPHIC stereo. </td>
</tr>
<tr>
<td></td>
<td><b>QUAD_BUFFER</b> </td>
<td>Switch on QUAD_BUFFER stereo. </td>
</tr>
<tr>
<td></td>
<td><b>VERTICAL_SPLIT</b> </td>
<td>Switch on VERTICAL_SPLIT stereo. </td>
</tr>
<tr>
<td></td>
<td><b>HORIZONTAL_SPLIT</b> </td>
<td>Switch on VERTICAL_SPLIT stereo. </td>
</tr>
<tr>
<td></td>
<td><b>OFF</b></td>
<td>Turn stereo off (default).&nbsp;</td>
</tr>
<tr>
<td><b>OSG_STEREO_MODE</b></td>
<td><b>ANAGLYPHIC</b></td>
<td>Use anaglyphic stereo when in stereo (default).&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>QUAD_BUFFER</b></td>
<td>Use quad buffered stereo when in stereo.&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>HORIZONTAL_SPLIT</b></td>
<td>Use horizontal split stereo mode when in stereo&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>VERTICAL_SPLIT</b></td>
<td>Use vertical split stereo mode when in stereo&nbsp;</td>
</tr>
<tr>
<td><b>OSG_SCREEN_DISTANCE</b></td>
<td><b>0.50</b></td>
<td>Set the distance the viewer is from screen in metres (default shown)&nbsp;</td>
</tr>
<tr>
<td><b>OSG_SCREEN_HEIGHT</b></td>
<td><b>0.26</b></td>
<td>Set the height if image on the screen in metres (default shown)&nbsp;</td>
</tr>
<tr>
<td><b>OSG_EYE_SEPERATION</b></td>
<td><b>0.06</b></td>
<td>Set the eye separation - interoccular distance (default shown.)&nbsp;</td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_HORIZONTAL_SEPERATION</b></td>
<td><b>42</b></td>
<td>Set the number of pixels between the left and right viewports (default
shown).</td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_HORIZONTAL_EYE_MAPPING</b></td>
<td><b>LEFT_EYE_LEFT_VIEWPORT</b></td>
<td>Set the left eye to render to left viewport, right eye to right viewport
(default).&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>LEFT_EYE_RIGHT_VIEWPORT</b></td>
<td>Set the left eye to render to right viewport, right eye to left viewport.&nbsp;</td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_VERTICAL_SEPERATION</b></td>
<td><b>42</b></td>
<td>Set the number of pixels between the top and bottom viewports (default
shown).</td>
</tr>
<tr>
<td><b>OSG_SPLIT_STEREO_VERTICAL_EYE_MAPPING</b></td>
<td><b>LEFT_EYE_TOP_VIEWPORT</b></td>
<td>Set the left eye to render to top viewport, right eye to bottom viewport
(default).&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>LEFT_EYE_BOTTOM_VIEWPORT</b></td>
<td>Set the left eye to render to bottom viewport, right eye to top viewport.&nbsp;</td>
</tr>
</table>
<hr>
<h3>
Command line arguments can be used to override these settings:</h3>
<h3> Examples:</h3>
To invoke stereo from the comandline: <br>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
<p>To invoke quad buffered stereo from the commandline: <br>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo QUAD_BUFFER cow.osg</b></p>
<table>
<tr>
<td><b>-stereo</b></td>
<td></td>
<td>Switch on stereo.&nbsp;</td>
</tr>
<tr>
<td><b>-stereo</b></td>
<td><b>ON</b></td>
<td>Switch on stereo.&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>OFF</b></td>
<td>Switch off stereo.&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>ANAGLYPHIC</b></td>
<td>Switch on ANAGLYPHIC stereo.&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>QUAD_BUFFER</b></td>
<td>Switch on QUAD_BUFFER stereo.&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>VERTICAL_SPLIT</b></td>
<td>Switch on VERTICAL_SPLIT stereo.&nbsp;</td>
</tr>
<tr>
<td></td>
<td><b>HORIZONTAL_SPLIT</b></td>
<td>Switch on VERTICAL_SPLIT stereo.&nbsp;</td>
</tr>
</table>
<hr>
<h3>
Examples:</h3>
To invoke stereo from the comandline:
<br><b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
<p>To invoke quad buffered stereo from the commandline:
<br><b>&nbsp;&nbsp;&nbsp; sgv -stereo QUAD_BUFFER cow.osg</b>
<p>To force all apps to start up in quad buffered stereo (if system supports
it) <br>
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=ON</b><br>
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b><br>
<b>&nbsp;&nbsp;&nbsp; sgv cow.osg</b></p>
<p>To set quad buffered stereo to the default, but use the commandline to
switch stereo on: <br>
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=OFF</b><br>
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b><br>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b><br>
&nbsp; </p>
it)
<br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=ON</b>
<br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b>
<br><b>&nbsp;&nbsp;&nbsp; sgv cow.osg</b>
<p>To set quad buffered stereo to the default, but use the commandline
to switch stereo on:
<br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=OFF</b>
<br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b>
<br><b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
<p>
<hr>
<h3> Size matters:</h3>
<p>For appropriate depth perception the stereo code creates separate left
<h3>
Size matters:</h3>
For appropriate depth perception the stereo code creates separate left
and eye views, both the frustum and modelview are shifted to account for
the separate eye views.&nbsp; To achieve the right amount of adjustment the
OSG requires the users eye separation, the distance from the eyes to the screen
and the height of the screen.&nbsp; The OSG will use the defaults of 0.05m,0.5m
and 0.26m respectively which are assumed to be reasonable defaults for most
users workstation configurations, note the OSG_SCREEN_HEIGHT is the image
height rather than total size of your monitor/display surface.&nbsp; For
the best stereo effects please measure these values and set them up via the
environmental variables.&nbsp; Once set the views you get should give improved
depth perception.&nbsp; A good way of measuring how well you are configured
for your display is to fly away from objects (using the FlightManipulator
for instance, but not the TrackballManipulator, see below) so that they
go of toward infinity. As they move away the offset between the two images
should tend towards your eye separation, if you achieve this then the object
will be perceived as at infinity.</p>
the separate eye views.&nbsp; To achieve the right amount of adjustment
the OSG requires the users eye separation, the distance from the eyes to
the screen and the height of the screen.&nbsp; The OSG will use the defaults
of 0.05m,0.5m and 0.26m respectively which are assumed to be reasonable
defaults for most users workstation configurations, note the OSG_SCREEN_HEIGHT
is the image height rather than total size of your monitor/display surface.&nbsp;
For the best stereo effects please measure these values and set them up
via the environmental variables.&nbsp; Once set the views you get should
give improved depth perception.&nbsp; A good way of measuring how well
you are configured for your display is to fly away from objects (using
the FlightManipulator for instance, but not the TrackballManipulator, see
below) so that they go of toward infinity. As they move away the offset
between the two images should tend towards your eye separation, if you
achieve this then the object will be perceived as at infinity.
<br>
<hr>
<h3> Camera Manipulator Modes:</h3>
<p>There are three osgUtil::CameraManipulator's which come with osgUtil,
which operate as a Trackball, Drive and Flight modes of interaction (see
sgv.html for how to invoke them in the scene graph viewer). The osgUtil::Trackball
<h3>
Camera Manipulator Modes:</h3>
There are three osgUtil::CameraManipulator's which come with osgUtil, which
operate as a Trackball, Drive and Flight modes of interaction (see sgv.html
for how to invoke them in the scene graph viewer). The osgUtil::Trackball
Manipulator automatically scales the fusion distance to that which will
fusion on center point of rotation - this will appear at the middle of the
monitor at the monitors depth. Whereas, the osgUtil::DriveManipualtor, osgUtil::FlightManipulator
scale the fusion distance to the distance the viewer is from the screen,
the results in a perception that the virtual world is scaled to physical
world, this is clearly better for simulators and alike. You can control
the fusion of the image in these two modes via the osg::Camera::setFusionDistanceMode(FusionDistanceMode
mode) where mode can be osg::Camera::PROPORTIONAL_TO_LOOK_DISTANCE (used
by Trackball) or osg::Camera::PROPORTIONAL_TO_SCREEN_DISTANCE (used by
Drive and Flight), and osg::Camera::setFusionDistanceRatio(float). See
include/osg/Camera for further details, and the camera manipulators for
implementation details. The fusion distance ratio defaults to 1.0 but
can be biased to move objects out or into screen, they will also appear
to get smaller and larger respectively. The camera manipulators allow
the user to alter this value at runtime via the '+' and '-' keys.</p>
fusion on center point of rotation - this will appear at the middle of
the monitor at the monitors depth. Whereas, the osgUtil::DriveManipualtor,
osgUtil::FlightManipulator scale the fusion distance to the distance the
viewer is from the screen, the results in a perception that the virtual
world is scaled to physical world, this is clearly better for simulators
and alike. You can control the fusion of the image in these two modes via
the osg::Camera::setFusionDistanceMode(FusionDistanceMode mode) where mode
can be osg::Camera::PROPORTIONAL_TO_LOOK_DISTANCE (used by Trackball) or
osg::Camera::PROPORTIONAL_TO_SCREEN_DISTANCE (used by Drive and Flight),
and osg::Camera::setFusionDistanceRatio(float). See include/osg/Camera
for further details, and the camera manipulators for implementation details.
The fusion distance ratio defaults to 1.0 but can be biased to move objects
out or into screen, they will also appear to get smaller and larger respectively.
The camera manipulators allow the user to alter this value at runtime via
the '+' and '-' keys.
</body>
</html>

View File

@ -1,84 +1,107 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.75C-SGI [en] (X11; I; IRIX64 6.5 IP27) [Netscape]">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Documentionn Index</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="doc/images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="doc/index.html">Index</a> </td>
<td><a href="doc/introduction.html">Introduction</a> </td>
<td><a href="doc/contents.html">Contents</a> </td>
<td><a href="doc/install.html">Install</a> </td>
<td><a href="doc/dependencies.html">Dependencies</a> </td>
<td><a href="doc/demos.html">Demos</a> </td>
<td><a href="doc/data.html">Data</a> </td>
<td><a href="doc/sgv.html">Viewer</a> </td>
<td><a href="doc/stereo.html">Stereo</a> </td>
<td><a href="doc/plan.html">Plan</a> </td>
<td><a href="doc/documentation.html">Reference Guides</a> </td>
</tr>
<tr>
<td><a href="doc/index.html">Index</a></td>
<td><a href="doc/introduction.html">Introduction</a></td>
<td><a href="doc/contents.html">Contents</a></td>
<td><a href="doc/install.html">Install</a></td>
<td><a href="doc/dependencies.html">Dependencies</a></td>
<td><a href="doc/demos.html">Demos</a></td>
<td><a href="doc/data.html">Data</a></td>
<td><a href="doc/sgv.html">Viewer</a></td>
<td><a href="doc/stereo.html">Stereo</a></td>
<td><a href="doc/plan.html">Plan</a></td>
<td><a href="doc/documentation.html">Reference Guides</a></td>
</tr>
</table>
<h2>
<u>Index</u></b></h2>
<u>Index</u></h2>
<table>
<tr>
<td><a href="doc/introduction.html">Introduction</a> </td>
<td>Introduction to Scene Graph in general, the OpenSceneGraph project itself and how to use it.</td>
</td>
<tr>
<td><a href="doc/introduction.html">Introduction</a></td>
<tr>
<td><a href="doc/contents.html">Contents</a> </td>
<td>A list of the directories in the distribution.</td>
</td>
<td>Introduction to Scene Graph in general, the OpenSceneGraph project
itself and how to use it.</td>
</tr>
<tr>
<td><a href="doc/install.html">Install</a> </td>
<td>A guide of how to compile and install on all the supported platforms.</td>
</td>
<tr>
<td><a href="doc/contents.html">Contents</a></td>
<tr>
<td><a href="doc/dependencies.html">Dependencies</a> </td>
<td>Listing of all the dependancies of the project, with links of where to download them.</td>
</td>
<td>A list of the directories in the distribution.</td>
</tr>
<tr>
<td><a href="doc/demos.html">Demos</a> </td>
<td>Thumbnails and info on all the demo applications which come with this distribution.</td>
</td>
<tr>
<td><a href="doc/install.html">Install</a></td>
<tr>
<td><a href="doc/data.html">Data</a> </td>
<td>List of websites where one can download interesting and useful data from.</td>
</td>
<td>A guide of how to compile and install on all the supported platforms.</td>
</tr>
<tr>
<td><a href="doc/sgv.html">Viewer</a> </td>
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and the rest of demos.</td>
</td>
<tr>
<td><a href="doc/dependencies.html">Dependencies</a></td>
<tr>
<td><a href="doc/stereo.html">Stereo</a> </td>
<td>Documentation on the commandline paramters and environmential variables which control stereo.</td>
</td>
<td>Listing of all the dependencies of the project, with links of where
to download them.</td>
</tr>
<tr>
<td><a href="doc/plan.html">Plan</a> </td>
<td>Details of development plans.</td>
</td>
<tr>
<td><a href="doc/demos.html">Demos</a></td>
<tr>
<td><a href="doc/documentation.html">Reference Guides</a> </td>
<td>Reference guides of the core libraries.</td>
</td>
<td>Thumbnails and info on all the demo applications which come with this
distribution.</td>
</tr>
<tr>
<td><a href="doc/data.html">Data</a></td>
<td>List of websites where one can download interesting and useful data
from.</td>
</tr>
<tr>
<td><a href="doc/sgv.html">Viewer</a></td>
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and
the rest of demos.</td>
</tr>
<tr>
<td><a href="doc/stereo.html">Stereo</a></td>
<td>Documentation on the commandline parameters and environmental variables
which control stereo.</td>
</tr>
<tr>
<td><a href="doc/plan.html">Plan</a></td>
<td>Details of development plans.</td>
</tr>
<tr>
<td><a href="doc/documentation.html">Reference Guides</a></td>
<td>Reference guides of the core libraries.</td>
</tr>
</table>
</body>