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. file listing coarse grained changes between releases.
<br><tt><a href="../ChangeLog">ChangeLog</a>&nbsp; </tt>text file listing <br><tt><a href="../ChangeLog">ChangeLog</a>&nbsp; </tt>text file listing
fine grained changes between releases. 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><a href="../Makefile">Makefile</a>&nbsp;&nbsp; </tt>Unix makefile.
<br><tt>index.html </tt>This file!</blockquote> <br><tt>index.html </tt>This file!</blockquote>

View File

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

View File

@ -2,157 +2,171 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <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> <title>Compilation dependencies</title>
</head> </head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000"> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640> <img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="index.html">Index</a> </td> <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="introduction.html">Introduction</a></td>
<td><a href="install.html">Install</a> </td>
<td><a href="dependencies.html">Dependencies</a> </td> <td><a href="contents.html">Contents</a></td>
<td><a href="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td> <td><a href="install.html">Install</a></td>
<td><a href="sgv.html">Viewer</a> </td>
<td><a href="stereo.html">Stereo</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td><a href="plan.html">Plan</a> </td>
<td><a href="documentation.html">Reference Guides</a> </td> <td><a href="demos.html">Demos</a></td>
</tr>
<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> </table>
<h2> <h2>
<a NAME="Scene graph dependencies"></a><u>Scene graph dependencies</u></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 The OpenSceneGraph is composed of core scene graph libraries, plugins libraries
graph libraries (osg, osgDB, osgUtil) are only dependant upon OpenGL and Standard C++ so should compile straight out of and demo programs. The core scene graph libraries (osg, osgDB, osgUtil)
the box on most systems. To run the demos one will also need to compile osgGLUT which adds the dependancy of GLUT, and are only dependent upon OpenGL and Standard C++ so should compile straight
if true type text is required then the freetype library will be required. The plugins which are used to read and write out of the box on most systems. To run the demos one will also need to
various file formats have their own sets of dependancies listed below, some have no dependancies at all. A plugin compile osgGLUT which adds the dependency of GLUT, and if true type text
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 is required then the freetype library will be required. The plugins which
dependencies. are used to read and write various file formats have their own sets of
</p> 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> <hr>
<h3> <h3>
<a NAME="Windows dependency arhives"></a><u>Windows dependency archives</u></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 To make life easier for Windows users, we have put together a .zip archives
which can be download and installed somewhere in you system. You'll need to set VisualStudio to pick up on the with all the required dependencies which can be download and installed
include and libs, and the PATH set to pick up in the dll's. Alternatively, a more hacky but simpler solution is somewhere in you system. You'll need to set VisualStudio to pick up on
to unpack this archive inside you OpenSceneGraph distribution, so that all the include files drop into the include and libs, and the PATH set to pick up in the dll's. Alternatively,
OpenSceneGraph/include, and the libs drop into OpenSceneGraph/lib, and all the dll's drop into OpenSceneGraph/bin, a more hacky but simpler solution is to unpack this archive inside you
this way VisualStudio will pick up the files simpler through the paths set up inside the workspace and project OpenSceneGraph distribution, so that all the include files drop into OpenSceneGraph/include,
files. The archives can be downloaded here: . . 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> <ul>
<li>freetype, libpng, libungif, libtiff, libjpeg & zlib includes, libs and dll.</li> <li>
<ul><i><a href="http://www.openscenegraph.org/download/dependencies/OsgWin32Dependencies.zip"> freetype, libpng, libungif, libtiff, libjpeg &amp; zlib includes, libs
http://www.openscenegraph.org/download/dependencies/OsgWin32Dependencies.zip</a></i></ul> and dll.</li>
<br>
<li>GLUT include, lib 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>
<ul><i><a href="http://www.openscenegraph.org/download/dependencies/Win32Glut.zip">
http://www.openscenegraph.org/download/dependencies/OsgWin32Glut.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> </ul>
<hr> <hr>
<h3> <h3>
<a NAME="Core library dependencies"></a><u>Core library dependencies</u></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>
<ul><i><a href="http://www.opengl.org/developers/documentation/glut/index.html"> <li>
http://www.opengl.org/developers/documentation/glut/index.html</a></i></ul></ul> 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> <hr>
<h3> <h3>
<a NAME="Plug-in dependencies"></a><u>Plug-in dependencies</u></h3> <a NAME="Plug-in dependencies"></a><u>Plug-in dependencies</u></h3>
<p> Follows is the list of dependencies which some of the osgPlugins require,
Follows is the list of depedencies which some of the osgPlugins require,
note the core osg and viewer do not need the following dependencies, you note the core osg and viewer do not need the following dependencies, you
only need the following if you require each specific plugin. Note, only need the following if you require each specific plugin. Note, the
the flt, 3ds, pic, tga, do not have any dependencies other than Standard flt, 3ds, pic, tga, do not have any dependencies other than Standard C++
C++ so will compile straight of the bag. Under Linux the majority so will compile straight of the bag. Under Linux the majority of the dependencies
of the depedancies below come as standard with distributions so you may not need to download them at all. below come as standard with distributions so you may not need to download
Its best to try out a straight compile of the osg, if you get missing includes/libs them at all. Its best to try out a straight compile of the osg, if you
errors then chase up the below. get missing includes/libs errors then chase up the below.
</p>
<ul> <ul>
<li> <li>
src/osgPlugins/pfb</li> src/osgPlugins/pfb</li>
<br>There is a Performer plugin in this distribution for converting from <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 OSG and from OSG to Performer. This plugin requires Performer
Performer to be installed and therefore is not compiled by default. If to be installed and therefore is not compiled by default. If you have Performer
you have Performer (available under Linux and IRIX) then edit src/osgPlugins/Make (available under Linux and IRIX) then edit src/osgPlugins/Make to compile
to compile under the plugin. Performer can be downloaded from : under the plugin. Performer can be downloaded from :
<ul><i><a href="http://www.sgi.com/">http://www.sgi.com/</a></i> <ul><i><a href="http://www.sgi.com/">http://www.sgi.com/</a></i></ul>
<i><a href="http://www.sgi.com/"></a></i></ul>
<li>
<br><li>src/osgPlugins/png</li> src/osgPlugins/png</li>
<br>The png plugin depends upon the libpng and zlib (for compression) libraries, <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 if you don't already have it installed, you'll need to download, compile
and install it. Project home pages are: 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> <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> <br><i><a href="http://www.info-zip.org/pub/infozip/zlib/">http://www.info-zip.org/pub/infozip/zlib/</a></i></ul>
<i><a href="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 <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 have it installed, you'll need to download, compile and install it. Project
home page is: 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> <ul><i><a href="http://prtr-13.ucsc.edu/~badger/software/libungif/">http://prtr-13.ucsc.edu/~badger/software/libungif/</a></i></ul>
<br><i><a href="http://prtr-13.ucsc.edu/~badger/software/libungif/"></a></i></ul>
Ftp download at : Ftp download at :
<ul><i><a href="ftp://prtr-13.ucsc.edu/pub/libungif/">ftp://prtr-13.ucsc.edu/pub/libungif/</a></i> <ul><i><a href="ftp://prtr-13.ucsc.edu/pub/libungif/">ftp://prtr-13.ucsc.edu/pub/libungif/</a></i></ul>
<i><a href="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 <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 have it installed, you'll need to download, compile and install it. Project
home page is: home page is:
<ul><i><a href="http://www.ijg.org/">http://www.ijg.org/</a></i> <ul><i><a href="http://www.ijg.org/">http://www.ijg.org/</a></i></ul>
<i><a href="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 <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 have it installed, you'll need to download, compile and install it. Project
home page is: home page is:
<ul><i><a href="http://www.libtiff.org">http://www.libtiff.org</a></i> <ul><i><a href="http://www.libtiff.org">http://www.libtiff.org</a></i></ul>
<i><a href="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 <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 being available on your system. If it is not then you'll be able to find
to find binaries at: binaries at:
<ul><i><a href="http://www.freesoftware.com/pub/infozip/">http://www.freesoftware.com/pub/infozip/</a></i> <ul><i><a href="http://www.freesoftware.com/pub/infozip/">http://www.freesoftware.com/pub/infozip/</a></i></ul>
<i><a href="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 <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 being available on your system. If it is not then you'll be able to find
to find binaries at: binaries at:
<ul><i><a href="http://www.gzip.org/">http://www.gzip.org/</a></i> <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> <br><a href="ftp://prep.ai.mit.edu/pub/gnu/tar/">ftp://prep.ai.mit.edu/pub/gnu/tar/</a></ul>
<a href="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> <br>Has the same dependencies as the tgz plugin above.</ul>
</body> </body>
</html> </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> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <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> <title>OSG Documentation</title>
</head> </head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000"> <body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640> <img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="index.html">Index</a> </td> <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="introduction.html">Introduction</a></td>
<td><a href="install.html">Install</a> </td>
<td><a href="dependencies.html">Dependencies</a> </td> <td><a href="contents.html">Contents</a></td>
<td><a href="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td> <td><a href="install.html">Install</a></td>
<td><a href="sgv.html">Viewer</a> </td>
<td><a href="stereo.html">Stereo</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td><a href="plan.html">Plan</a> </td>
<td><a href="documentation.html">Reference Guides</a> </td> <td><a href="demos.html">Demos</a></td>
</tr>
<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> </table>
<h2> <h2>
<u>Index</u></b></h2> <u>Index</u></h2>
<table> <table>
<tr> <tr>
<td><a href="introduction.html">Introduction</a> </td> <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>Introduction to Scene Graph in general, the OpenSceneGraph project
<td><a href="contents.html">Contents</a> </td> itself and how to use it.</td>
<td>A list of the directories in the distribution.</td> </tr>
</td>
<tr> <tr>
<td><a href="install.html">Install</a> </td> <td><a href="contents.html">Contents</a></td>
<td>A guide of how to compile and install on all the supported platforms.</td>
</td>
<tr> <td>A list of the directories in the distribution.</td>
<td><a href="dependencies.html">Dependencies</a> </td> </tr>
<td>Listing of all the dependancies of the project, with links of where to download them.</td>
</td>
<tr> <tr>
<td><a href="demos.html">Demos</a> </td> <td><a href="install.html">Install</a></td>
<td>Thumbnails and info on all the demo applications which come with this distribution.</td>
</td>
<tr> <td>A guide of how to compile and install on all the supported platforms.</td>
<td><a href="data.html">Data</a> </td> </tr>
<td>List of websites where one can download interesting and useful data from.</td>
</td>
<tr> <tr>
<td><a href="sgv.html">Viewer</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and the rest of demos.</td>
</td>
<tr> <td>Listing of all the dependencies of the project, with links of where
<td><a href="stereo.html">Stereo</a> </td> to download them.</td>
<td>Documentation on the commandline paramters and environmential variables which control stereo.</td> </tr>
</td>
<tr> <tr>
<td><a href="plan.html">Plan</a> </td> <td><a href="demos.html">Demos</a></td>
<td>Details of development plans.</td>
</td>
<tr> <td>Thumbnails and info on all the demo applications which come with this
<td><a href="documentation.html">Reference Guides</a> </td> distribution.</td>
<td>Reference guides of the core libraries.</td> </tr>
</td>
<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> </table>
</body> </body>

View File

@ -2,54 +2,55 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <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> <title>Installation instructions</title>
</head> </head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000"> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640> <img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="index.html">Index</a> </td> <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="introduction.html">Introduction</a></td>
<td><a href="install.html">Install</a> </td>
<td><a href="dependencies.html">Dependencies</a> </td> <td><a href="contents.html">Contents</a></td>
<td><a href="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td> <td><a href="install.html">Install</a></td>
<td><a href="sgv.html">Viewer</a> </td>
<td><a href="stereo.html">Stereo</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td><a href="plan.html">Plan</a> </td>
<td><a href="documentation.html">Reference Guides</a> </td> <td><a href="demos.html">Demos</a></td>
</tr>
<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> </table>
<h2><u>Compiling and installing the OpenSceneGraph</u></h2> <h2>
<u>Compiling and installing the OpenSceneGraph</u></h2>
The scene graph depends upon Standard C++, STL and OpenGL so you need a
<p> C++ compiler up to the task and OpenGL or Mesa installed. The viewer depends
The scene graph depends upon Standard C++, STL and OpenGL so you need upon GLUT which you'll need to download and install from the GLUT website.
a C++ compiler up to the task and OpenGL or Mesa installed. The viewer The OSG has it own native ascii file format, and .rgb image reader inbuilt
depends upon GLUT which you'll need to download and install from the GLUT which allows you read the example data with any dependencies other than
website. The OSG has it own native ascii file format, and .rgb image reader C++, STL and OpenGL.
inbuilt which allows you read the example data with any dependencies other <p>The osgText library adds the dependency of the freetype library for
than C++, STL and OpenGL. support of true type fonts, however it is not essential to the core library,
</p> so you can comment it out from compilation by modifying the src/Makefile,
<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 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 from www.freetype.org. The osgText library also requires an up to date
GLU implementation which supports GLU1.2 tessellation routines. If you 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 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 instance the sgi's sample implementation for GLU from the www.opengl.org
website. 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, 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 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 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 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 able to compile all the plug-ins. A full list of dependencies and where
to download the required libraries are listed in the to download the required libraries are listed in the
<i><a href="dependencies.html"> <i><a href="dependencies.html">dependencies.html</a></i>
dependencies.html</a></i> <p>If you're coming across the OSG for the first time and want to get started
</p>
<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 quickly, go right ahead and follow the compilation instructions. You can
always later download the libraries which the plug-ins require if you eventually always later download the libraries which the plug-ins require if you eventually
need them. need them.
</p>
<ul> <ul>
<li><a href="#Compiling under Windows with Visual Studio">Compiling under Windows with Visual Studio</a></li> <li>
<br> <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> <li>
<br> Compiling under Unix (including Mac OSX and Cygwin)</li>
<p> <p><br>Building the OSG requires 'gmake', due to the extensive use of gmake
Building the OSG requires 'gmake', due to the extensive use of gmake directives directives in the Makefiles. You can get gmake from here if you don't already
in the Makefiles. You can get gmake from here if you don't already have have it installed: http://www.gnu.org/software/make/
it installed: http://www.gnu.org/software/make/ <p>Almost all of the unix compiling is done simply with <b>make; make install</b>
</p> with <b>make help</b> to bring up help. For platform specific details:
<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>
<ul> <ul>
<li><a href="#Cygwin">Cygwin</a></li> <li>
<li><a href="#Linux">Linux</a></li> <a href="#Cygwin">Cygwin</a></li>
<li><a href="#Free BSD">Free BSD</a></li>
<li><a href="#Mac OSX">Mac OSX</a></li> <li>
<li><a href="#IRIX">IRIX</a></li> <a href="#Linux">Linux</a></li>
<li><a href="#Solaris">Solaris</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>
</ul> </ul>
<hr> <hr>
<h3> <h3>
<u><a name="Compiling under Windows with Visual Studio">Compiling under Windows with Visual Studio.</a></u></h3> <a NAME="Compiling under Windows with Visual Studio"></a><u>Compiling under
<p>The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw located 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 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 with the basic VisualC++6.0, but, and this is a big but, the STL version
comes with VisualC++6.0 is extremely buggy and unable to handle things even which comes with VisualC++6.0 is extremely buggy and unable to handle things
as simple as std::mamp without crashing, even the latest severice packs (which are even as simple as std::mamp without crashing, even the latest service packs
recommended won't fix the STL bugs). This is a problem for the OpenSceneGraph (which are recommended won't fix the STL bugs). This is a problem for the
since it makes proper use of Standard C++. One can struggle on with the MS's OpenSceneGraph since it makes proper use of Standard C++. One can struggle
and expect crashes and optimization disabled, or adopt one of the follwing: on with the MS's and expect crashes and optimization disabled, or adopt
one of the following:
<ol> <ol>
<li> Visual Studio .NET </li> <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> Visual Studio .NET</li>
<li> STLport - <a href="http://www.stlport.org">http://www.stlport.org</a></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> </ol>
The OSG is composed of a number of scene graph libraries (with Core in
</p> front of the project names), executables (with Demos in front of the project
<p>The OSG is composed of a number of scene graph libraries (with Core in front of the project names), names), and plugins which read and write 3D data formats and 2D image formats.
executables (with Demos in front of the project names), and plugins which read and write 3D data formats To get the OSG running you'll need at least to compile Core osg,osgUtil,osgDB,osgGLUT,
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
osgPlugin dot_osg and Demo sgv. The rest of the libraries and executables are optional and can are optional and can be compiled if you need them, however for simplicity
be compiled if you need them, however for simplicity I would recommend I would recommend doing a batch build of all the libraries and executables
doing a batch build of all the libraries and executables in the distribution, in the distribution, some of the plug-ins which support non native file
some of the plug-ins which support non native file formats may not compile formats may not compile due to dependencies on other libraries (such as
due to dependencies on other libraries (such as libpng), you can ignore libpng), you can ignore these compilation errors unless you need to load
these compilation errors unless you need to load the related file types. To help the related file types. To help the compilation the plugins, osgGLUT and
the compilationon the plugins, osgGLUT and osgText one can download .zip osgText one can download .zip archive will all the dependencies in it.
archive will all the dependancies in it. Further details on this .zip file can Further details on this .zip file can be found in <i><a href="dependencies.html">dependencies.html</a></i>
be found in <i><a href="dependencies.html">dependencies.html</a></i>
</p>
<p>To execute the viewer the file path for the .dll's and .exe, both compiled <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 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 your autoexec.bat, its also useful to add the OSGFILEPATH to your autoexec.bat
to help the location of datafiles. For example : to help the location of datafiles. For example :
</p> <p>SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images
<p>SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images</p>
<br>SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\osg-0.8.43\bin; <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 <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. download directory.
<h3> <h3>
Using Visual Studio .NET</h3> Using Visual Studio .NET</h3>
<p> Looks like Microsoft have eventually got their act together on the compiler
Looks like Microsoft have eventually got their act together on the compiler front, front, the compiler looks Standard C++ compliant with a solid STL implement,
the compiler looks Standard C++ compilient with a solid STL implement, so this is so this is the recommend route.
the recommend route.</p>
<h3> <h3>
Using Dinkumware STL</h3> Using Dinkumware STL</h3>
<p> The basic jist is that you'll need to download their STL implementation,
The basic jist is that you'll need to download their STL implementation, and follow their and follow their instructions of how to force VisualStudio to pick up the
instructions of how toforce VisualStudio to pick up the new STL implementation. More details new STL implementation. More details at <a href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a>.
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
</p> you won't be running at full speed since the build #ifdef's out some important
<p> state optimizations since the basic VisualStudio can't handle it. You can
Once it is installed everything should compile fine and not crash, but you won't be running at full safely remove the #ifdef from src/osgUtil/Otimizer.cpp, Line 44. The #ifdef
speed since the build #odef's out some important state optimizations since the basic VisualStudio is smart enough to do this automatically when using VisualStudio .NET and
can't handle it. You can safely remove the #ifdef from src/osgUtil/Otimizer.cpp, Line 44. 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
The #ifdef is smart enough to do this automatically when using VIsualStudio .NET and STLport so that for the #ifdef to pick up on.
modification by hand won't be required. Unfortunately there doesn't seem to be a special define associated <h3>
with the Dinkumware STL for the #ifdef to pick up on. Using STLport</h3>
</p>
<h3>Using STLport</h3>
</p>
The OSG has been tested under Windows with STLport-4.5, which allows the 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. 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 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 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 is not required because this has not be problematic under Windows, it is
only the container classes and algorithms that need replacing (thanks to 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 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. no need to compile STLport itself, or link into any special libraries.
To configure STLport simply comment IN (its commented out by default), 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 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 in Visual Studio to pick up on STLport: Select the "Tools" menu. Select
"Options" In the Options dialog, select the "Directories" tab Under the "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 "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 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. list, thus overriding MS's own STL implementations.
</p>
<hr> <hr>
<h3>
<a NAME="Linux"></a><u>Compiling under Linux</u></h3>
<h3><u><a name="Linux">Compiling under Linux</a></u></h3>
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote> <blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type: 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 or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote> <blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type: To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote> <blockquote><tt>% make help</tt></blockquote>
(highly recommended) (highly recommended)
<p>The osgText library now depends upon GLU1.3 functionality, and only <p>The osgText library now depends upon GLU1.3 functionality, and only
the recent Mesa version have this as stanadard. Unfortnately not all Linux the recent Mesa version have this as standard. Unfortunately not all Linux
distribtions are upto date even recent ones. If you have problems compiling 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 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 this file, under the title RedHat7.1 &amp; GLU1.3 for a quick way of installing
GLU1.3 in the right place. 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 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 it doesn't have GLU 1.3 by default, which OSG is now dependent on (for
osgText.) Good luck everyone. - Clay osgText.) Good luck everyone. - Clay
<p>
<br>
<br>
<hr> <hr>
<h3>
<h3><u><a name="Free BSD">Compiling under FreeBSD</a></u></h3> <a NAME="Free BSD"></a><u>Compiling under FreeBSD</u></h3>
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote> <blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type: 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 or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote> <blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type: To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote> <blockquote><tt>% make help</tt></blockquote>
(highly recommended) (highly recommended)
<p>
<br>
<br>
<hr> <hr>
<h3>
<h3><u><a name="IRIX">Compiling under IRIX</a></u></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 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. 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 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. recommended to use MIPSPro7.3.1.1m.
<p>Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: <p>Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote> <blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type: 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 or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote> <blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type: To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote> <blockquote><tt>% make help</tt></blockquote>
(highly recommended) (highly recommended)
<br> <br>
<hr> <hr>
<h3>
<h3><u><a name="Solaris">Compiling under Solaris</a></u></h3> <a NAME="Solaris"></a><u>Compiling under Solaris</u></h3>
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
<blockquote><tt>% make</tt></blockquote> <blockquote><tt>% make</tt></blockquote>
Note, make should automatically detect linux and build optimized targets Note, make should automatically detect linux and build optimized targets
for your system. And if you wish to install the OSG type: 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 or
<blockquote><tt>%&nbsp;make instlinks</tt></blockquote> <blockquote><tt>% make instlinks</tt></blockquote>
To get full details of make options, type: To get full details of make options, type:
<blockquote><tt>%&nbsp;make help</tt></blockquote> <blockquote><tt>% make help</tt></blockquote>
(highly recommended) (highly recommended)
<br> <br>
<hr> <hr>
<h3>
<h3><u><a name="Mac OSX">Compiling under MacOS X (instructions written by Phil Atkin)</a></u></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 For anyone who's ever used a Unix box for development it really is so simple
it's insane. it's insane.
<p>You need to have installed the Developer tools from the CD that comes <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 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, 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 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. 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 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 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 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 from an app, so I used vi to create that. Then I just went
<p>cd $OSGHOME <p>cd $OSGHOME
<blockquote><tt>%&nbsp;make clean</tt> <blockquote><tt>% make clean</tt>
<br><tt>% make macosx</tt></blockquote> <br><tt>% make macosx</tt></blockquote>
<p><br>And it sounds too good to be true but it is that simple. It's worth <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 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 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 - 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 <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>
">http://www.macos.utah.edu/Documentation/macosx/security/enablerootuser.html</a></blockquote>
Or alternately, Or alternately,
<blockquote><a href="http://www.thinkmacintosh.com/osxfaq.html <blockquote><a href="http://www.thinkmacintosh.com/osxfaq.html">http://www.thinkmacintosh.com/osxfaq.html</a></blockquote>
">http://www.thinkmacintosh.com/osxfaq.html</a></blockquote>
<p><br>One you have a root account enabled, you have to su root you cd <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 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 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 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 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> <hr>
<h3>
<h3><u><a name="Cygwin">Compiling under Cygwin</a></u></h3> <a NAME="Cygwin"></a><u>Compiling under Cygwin</u></h3>
To compile, from the OSG root directory, type: make Note, make should automatically 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 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 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 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 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) type: make help (highly recommended)
<p>OSGFILEPATH environmental variable <p>OSG_FILE_PATH environmental variable
<p>For the OSG to locate file data files easily an environmetal variable <p>For the OSG to locate file data files easily an environmental variable
OSGFILEPATH is used at run-time by the osgDB library. Note, for examples 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) 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 Add the following to your .cshrc (note paths separated by colon's): setenv&nbsp;
OSGFILEPATH ./:${OSGDATA}:${OSGDATA}/Images Or the following if you're OSG_FILE_PATH ./:${OSGDATA}:${OSGDATA}/Images Or the following if you're
using a sh compatible shell : export OSGFILEPATH=./:${OSGDATA}:${OSGDATA}/Images: using a sh compatible shell : export&nbsp; OSG_FILE_PATH=./:${OSGDATA}:${OSGDATA}/Images:
Or under windows (note paths seperated by semi-colon's) : SET OSGFILEPATH=./:${OSGDATA};${OSGDATA}/Images Or under windows (note paths seperated by semi-colon's) : SET&nbsp; OSG_FILE_PATH=./:${OSGDATA};${OSGDATA}/Images
</body> </body>
</html> </html>

View File

@ -7,21 +7,30 @@
</head> </head>
<body bgcolor="#FFFFFF"> <body bgcolor="#FFFFFF">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" BORDER=0 height=77 width=640> <img SRC="images/OpenSceneGraphBanner_Distribution.jpg" BORDER=0 height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="index.html">Index</a> </td> <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="introduction.html">Introduction</a></td>
<td><a href="install.html">Install</a> </td>
<td><a href="dependencies.html">Dependencies</a> </td> <td><a href="contents.html">Contents</a></td>
<td><a href="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td> <td><a href="install.html">Install</a></td>
<td><a href="sgv.html">Viewer</a> </td>
<td><a href="stereo.html">Stereo</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td><a href="plan.html">Plan</a> </td>
<td><a href="documentation.html">Reference Guides</a> </td> <td><a href="demos.html">Demos</a></td>
</tr>
<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> </table>
<h2> <h2>
@ -62,9 +71,7 @@ scientific and commercial visualization, training through to modeling programs.
<h3> <h3>
<u>Why use a Scene Graph - Performance, Productivity, Portability and Scalability</u>.</h3> <u>Why use a Scene Graph - Performance, Productivity, Portability and Scalability</u>.</h3>
<ol> <ol><i>Performance</i> - scene graphs provide an excellent framework for
<li><p>
<i>Performance</i> - scene graphs provide an excellent framework for
maximize graphics performance. A good scene graph employs two key techniques 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 - 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 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 will thrash between states, stalling the graphics and destroying graphics
throughout. As GPU's get faster and faster, the cost of stalling the 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. is also going up, so scene graph are become ever more important.
</p></li> <p><i>Productivity</i> - scene graphs take much of the hard work required
<li><p>
<i>Productivity</i> - scene graphs take much of the hard work required
to develop high performance graphics applications. The scene graphs manage to develop high performance graphics applications. The scene graphs manage
all the graphics for you, reducing what would be thousands of lines of all the graphics for you, reducing what would be thousands of lines of
OpenGL down to a few simple calls. 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 Object Orientated programming is that of object composition, enshrined
in <i>Composite Design Pattern</i>, which fits the scene graph tree structure in <i>Composite Design Pattern</i>, which fits the scene graph tree structure
perfectly which makes it highly flexible and reusable design - in real 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 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 very little coding. A dozen lines of code can be enough to load your data
and create an interactive viewer! and create an interactive viewer!
</p></li> <p><i>Portability</i> - scene graphs encapsulate much of the lower level
<li><p>
<i>Portability</i> - scene graphs encapsulate much of the lower level
tasks of rendering graphics and reading and writing data, reducing or even tasks of rendering graphics and reading and writing data, reducing or even
eradicating the platform specific coding that you require in your own application. eradicating the platform specific coding that you require in your own application.
If the underlying scene graph is portable then moving from platform to If the underlying scene graph is portable then moving from platform to
platform can be a simple as recompiling your source code. platform can be a simple as recompiling your source code.
</p></li> <p><i>Scalability</i> - along with being able to dynamic manage the complexity
<li><p>
<i>Scalability</i> - along with being able to dynamic manage the complexity
of scenes automatically to account for differences in graphics performance of scenes automatically to account for differences in graphics performance
across a range of machines, scene graphs also make it much easier to manage across a range of machines, scene graphs also make it much easier to manage
complex hardware configurations, such as clusters of graphics machines, complex hardware configurations, such as clusters of graphics machines,
or multiprocessor/multipipe systems such as SGI's Onyx. A good scene graph or multiprocessor/multipipe systems such as SGI's Onyx. A good scene graph
will allow the developer to concentrate on developing their own application will allow the developer to concentrate on developing their own application
while the rendering framework of the scene graph handles the different while the rendering framework of the scene graph handles the different
underlying hardware configurations. underlying hardware configurations.</ol>
</p></li>
</ol>
<hr> <hr>
<h3> <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 and well focused on the solving the task. The OpenSceneGraph delivers on
the four key benefits of scene graph technology outlined above using the the four key benefits of scene graph technology outlined above using the
following features: following features:
<ol> <ol><i>Performance</i> - supports view frustum culling, small feature culling,
<li><p>
<i>Performance</i> - supports view frustum culling, small feature culling,
Level Of Details (LOD') nodes, state sorting, vertex arrays and display Level Of Details (LOD') nodes, state sorting, vertex arrays and display
list as part of the core scene graph, these together make the OpenSceneGraph list as part of the core scene graph, these together make the OpenSceneGraph
one highest performance scene graph available. User feedback is that performance 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 of massive terrain databases interactively, examples of this approach can
be found at both Vterrain.org and TerrainEngine.com which both integrate be found at both Vterrain.org and TerrainEngine.com which both integrate
with the OpenSceneGraph. with the OpenSceneGraph.
</p></li> <p><i>Productivity</i> - by combining lessons learned from established
<li><p>
<i>Productivity</i> - by combining lessons learned from established
scene graph like Performer and Open Inventor, with modern software engineering scene graph like Performer and Open Inventor, with modern software engineering
methodologies like Design Patterns and a great deal of feedback early on 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 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 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 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. an application and bring in user data with a very small amount of code.
</p></li> <p><i>Portability</i> - The core scene graph has also been designed to
<li><p>
<i>Portability</i> - The core scene graph has also been designed to
be have minimal platform specific dependency, requiring little more than be have minimal platform specific dependency, requiring little more than
Standard C++ and OpenGL. The has allowed the scene graph to be rapidly Standard C++ and OpenGL. The has allowed the scene graph to be rapidly
ported on wide range of platforms - ported on wide range of platforms - originally developed on IRIX, then
originally developed on IRIX, then
ported to Linux, then to Windows, then FreeBSD, then Mac OSX and most recently ported to Linux, then to Windows, then FreeBSD, then Mac OSX and most recently
Solaris! Being completely windowing system independent makes it easy for Solaris! Being completely windowing system independent makes it easy for
users to add their own window specific libraries and applications on top. 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 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 written on top Qt, MFC, WxWindows and SDL. Users have also integrated it
with Motif, and X. with Motif, and X.
</p></li> <p><i>Scalability</i> - the scene graph not only runs from portables all
<li><p> the way up to Onyx Infinite Reality Monsters, it supports the multiple
<i>Scalability</i> - the scene graph not only runs from portables all the graphics subsystems found on machines like the a mulitpipe Onyx. This is
way up to Onyx Infinite Reality Monsters, it supports the multiple graphics possible since the core scene graph supports multiple graphics context
subsystems found on machines like the a mulitpipe Onyx. This is possible for both OpenGL DisplayLists and texture objects, and the cull and draw
since the core scene graph supports multiple graphics context for both traversals have been designed to cache rendering data locally and use the
OpenGL DisplayLists and texture objects, and the cull and draw traversals scene gaph almost entirely as a read only operation. This allows multiple
have been designed to cache rendering data locally and use the scene gaph cull-draw pairs to run on multiple CPU's which are bound to multiple graphics
almost entirely as a read only operation. This allows multiple cull-draw subsystems. This has been demonstrated using the OpenSceneGraph in conjunction
pairs to run on multiple CPU's which are bound to multiple graphics subsystems. with sgi's OpenGL multipipe SDK. We also have osgMP in development which
This has been demonstrated using the OpenSceneGraph in conjunction with will be cross platform and transparently support multiple multipipe systems
sgi's OpenGL multipipe SDK. We also have osgMP in development which will like the Onyx and graphics clusters</ol>
be cross platform and transparently support multiple multipipe systems
like the Onyx and graphics clusters
</p></li>
</ol>
All the source to is published under the GNU Library General Public License 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, (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. 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 <p>The source distribution contains the all the source and include files
required to build the OpenSceneGraph from scratch, and is ideal if you required to build the OpenSceneGraph from scratch, and is ideal if you
want to learn more about how the scene graph works, how to extend it, and want to learn more about how the scene graph works, how to extend it, and
to track down and fix any problems that you come across. to
track down and fix any problems that you come across.
<p>If you are using a source distribution then read the <a href="install.html">installation</a> <p>If you are using a source distribution then read the <a href="install.html">installation</a>
instructions for how to get the OpenSceneGraph compiling and installed instructions for how to get the OpenSceneGraph compiling and installed
on your system. You may also need to download libraries that parts of the on your system. You may also need to download libraries that parts of the
OpenSceneGraph is dependent upon such as glut, check the OpenSceneGraph is dependent upon such as glut, check the <a href="dependencies.html">dependencies</a>
<a href="dependencies.html">dependencies</a>
list for further details. list for further details.
<p>For full instructions of how to run the demos read the <a href="demos.html">demos</a>
page.
<br> <br>
<hr> <hr>
<h3> <h3>

View File

@ -2,111 +2,126 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <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> <title>Plans for future developments</title>
</head> </head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000"> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640> <img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="index.html">Index</a> </td> <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="introduction.html">Introduction</a></td>
<td><a href="install.html">Install</a> </td>
<td><a href="dependencies.html">Dependencies</a> </td> <td><a href="contents.html">Contents</a></td>
<td><a href="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td> <td><a href="install.html">Install</a></td>
<td><a href="sgv.html">Viewer</a> </td>
<td><a href="stereo.html">Stereo</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td><a href="plan.html">Plan</a> </td>
<td><a href="documentation.html">Reference Guides</a> </td> <td><a href="demos.html">Demos</a></td>
</tr>
<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> </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> <ul>
<li> <li>
New osg::Geometry drawable to deprecate osg::GeoSet, the new Geometry class New osg::Geometry drawable to deprecate osg::GeoSet, the new Geometry class
will support multiple text coords, use std::vector<> for easy management of will support multiple text coords, use std::vector&lt;> for easy management
attributes.and support gl extensions to provide greater polygon performance. of attributes and support gl extensions to provide greater polygon performance.</li>
</li>
<li> <li>
Multi-texturing support in osg::Texture. osg::TexMat, osg::TexGen. Multi-texturing support in osg::Texture. osg::TexMat, osg::TexGen.</li>
</li>
<li> <li>
Multi-pass fallback for when multi-texturing is not supported. Multi-pass fallback for when multi-texturing is not supported.</li>
</li>
<li> <li>
Clean up the API for managing multi-stage and multi-pass rendering within the scene graph. Clean up the API for managing multi-stage and multi-pass rendering within
</li> the scene graph.</li>
<li> <li>
Replace osgGLUT with a cleaner windowing API for the demos, move osgGLUT Replace osgGLUT with a cleaner windowing API for the demos, move osgGLUT
out of the distribution and into the bazaar. out of the distribution and into the bazaar.</li>
</li>
<li> <li>
Introduce a new library osgGA, which acts as GUI abstraction layer, move the Introduce a new library osgGA, which acts as GUI abstraction layer, move
current osgUtil camera manipulators into osgGA.</li> the current osgUtil camera manipulators into osgGA.</li>
<li> <li>
Introduce a new library osgEnv/osgShapes, which adds support for creating shapes and Introduce a new library osgEnv/osgShapes, which adds support for creating
environmental effects such as stars, planats, cloud layers and ground planes. shapes and environmental effects such as stars, planets, cloud layers and
</li> ground planes.</li>
<li> <li>
Integrate unit tests for all classes, and develop a test suite. Integrate unit tests for all classes, and develop a test suite.</li>
</li>
</ul> </ul>
<h3>Books, tutorials and demostrations</h3> <h3>
Books, tutorials and demonstrations</h3>
<ul> <ul>
<li> <li>
Don Burns and Robert Osfield to write the OpenSceneGraph book!</li> Don Burns and Robert Osfield to write the OpenSceneGraph book!</li>
<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> <li>
Development of technoglogy demonstrations for shows, presentations and training.</li> Development of technology demonstrations for shows, presentations and training.</li>
</ul> </ul>
<h3>Development of commerical add on libraries:</h3> <h3>
Development of commercial add on libraries:</h3>
<ul> <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> <li>
osgMP - cross platfrom library for transparently managing mulitpipe and osgLP - cross platform library for support for light points.</li>
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>
</ul> </ul>
<h3>Professional services</h3> <h3>
Professional services</h3>
<ul> <ul>
<li>
Set up a support contract and support systems for confidential, email,
phone and onsite support.</li>
<li> <li>
Set up a support contract and support systems for confidential, Set up the Open Scene Graph Professional License (OSGPL) which is conventional
email, phone and onsite support.</li> proprietary license that allows companies to distribute projects that do
<li> not comply with the terms of the LGPL, such as turn key systems.</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>
<li> <li>
Develop training courses.</li> Develop training courses.</li>
</ul> </ul>
For further details on osgMP, osgLP, OSGPL licensing, professional support,
For further details on osgMP, osgLP, OSGPL licensing, professional support, training and consultancy training and consultancy services contact Robert Osfield at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a>
services contact Robert Osfield at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a> or or Don Burns at <a href="mailto:don@andesengineering.com">don@andesengineering.com.</a>
Don Burns at <a href="mailto:don@andesengineering.com">don@andesengineering.com.</a>
</body> </body>
</html> </html>

View File

@ -2,228 +2,305 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <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> <title>Native stereo support</title>
</head> </head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000"> <body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640> <img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="index.html">Index</a> </td> <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="introduction.html">Introduction</a></td>
<td><a href="install.html">Install</a> </td>
<td><a href="dependencies.html">Dependencies</a> </td> <td><a href="contents.html">Contents</a></td>
<td><a href="demos.html">Demos</a> </td>
<td><a href="data.html">Data</a> </td> <td><a href="install.html">Install</a></td>
<td><a href="sgv.html">Viewer</a> </td>
<td><a href="stereo.html">Stereo</a> </td> <td><a href="dependencies.html">Dependencies</a></td>
<td><a href="plan.html">Plan</a> </td>
<td><a href="documentation.html">Reference Guides</a> </td> <td><a href="demos.html">Demos</a></td>
</tr>
<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> </table>
<h2><u>Native Support for Stereo</u></h2> <h2>
<u>Native Support for Stereo</u></h2>
<p>The OSG has support for anaglyphic stereo The OSG has support for anaglyphic stereo (i.e. red/green or red/cyan glasses),
(i.e. red/green or red/cyan glasses), quad buffered stereo (i.e. active stereo using shutter glasses, quad buffered stereo (i.e. active stereo using shutter glasses, or passive
or passive stereo using polarized projectors & glasses) and horizontal and vertical split window stereo implementations. stereo using polarized projectors &amp; glasses) and horizontal and vertical
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 split window stereo implementations. Almost all OSG applications have the
handled transparently inside osgUtil::SceneView's handling of rendering.It is a simple as: potential for stereo support simply by setting the relevant environmental
</p> variables, or via command line arguments. Little or no code changes will
<b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b> be required, the support is handled transparently inside osgUtil::SceneView's
handling of rendering. It is a simple as:
<p>If the user is planning to use head tracked stereo, or a cave then it is currently recommend to set it <br><b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
up via a VR toolkit such as VRjuggler, in this case refer to the VR toolkits handling of stereo, and keep <p>If the user is planning to use head tracked stereo, or a cave then it
all the OSG's stereo specific environment variables (below) set to OFF, or set the values to off within own is currently recommend to set it up via a VR toolkit such as VRjuggler,
your own applications. in this case refer to the VR toolkits handling of stereo, and keep all
</p> the OSG's stereo specific environment variables (below) set to OFF, or
set the values to off within own your own applications.
<br>
<hr> <hr>
<h3>The environmental variables of interest:</h3> <h3>
The environmental variables of interest:</h3>
<table> <table>
<tr> <tr>
<td><b>OSG_STEREO</b></td> <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>
<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>
<tr> <td></td>
<td><b>-stereo</b> </td>
<td><b></b> </td> <td><b>OFF</b></td>
<td>Switch on stereo. </td>
</tr> <td>Turn stereo off (default).&nbsp;</td>
<tr> </tr>
<td><b>-stereo</b></td>
<td><b>ON</b> </td> <tr>
<td>Switch on stereo. </td> <td><b>OSG_STEREO_MODE</b></td>
</tr>
<tr> <td><b>ANAGLYPHIC</b></td>
<td></td>
<td><b>OFF</b> </td> <td>Use anaglyphic stereo when in stereo (default).&nbsp;</td>
<td>Switch off stereo. </td> </tr>
</tr>
<tr> <tr>
<td></td> <td></td>
<td><b>ANAGLYPHIC</b> </td>
<td>Switch on ANAGLYPHIC stereo. </td> <td><b>QUAD_BUFFER</b></td>
</tr>
<tr> <td>Use quad buffered stereo when in stereo.&nbsp;</td>
<td></td> </tr>
<td><b>QUAD_BUFFER</b> </td>
<td>Switch on QUAD_BUFFER stereo. </td> <tr>
</tr> <td></td>
<tr>
<td></td> <td><b>HORIZONTAL_SPLIT</b></td>
<td><b>VERTICAL_SPLIT</b> </td>
<td>Switch on VERTICAL_SPLIT stereo. </td> <td>Use horizontal split stereo mode when in stereo&nbsp;</td>
</tr> </tr>
<tr>
<td></td> <tr>
<td><b>HORIZONTAL_SPLIT</b> </td> <td></td>
<td>Switch on VERTICAL_SPLIT stereo. </td>
</tr> <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> </table>
<hr> <hr>
<h3>
Command line arguments can be used to override these settings:</h3>
<h3> Examples:</h3> <table>
To invoke stereo from the comandline: <br> <tr>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b> <td><b>-stereo</b></td>
<p>To invoke quad buffered stereo from the commandline: <br>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo QUAD_BUFFER cow.osg</b></p> <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 <p>To force all apps to start up in quad buffered stereo (if system supports
it) <br> it)
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=ON</b><br> <br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=ON</b>
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b><br> <br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b>
<b>&nbsp;&nbsp;&nbsp; sgv cow.osg</b></p> <br><b>&nbsp;&nbsp;&nbsp; sgv cow.osg</b>
<p>To set quad buffered stereo to the default, but use the commandline to <p>To set quad buffered stereo to the default, but use the commandline
switch stereo on: <br> to switch stereo on:
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=OFF</b><br> <br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO=OFF</b>
<b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b><br> <br><b>&nbsp;&nbsp;&nbsp; export OSG_STEREO_MODE=QUAD_BUFFER</b>
<b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b><br> <br><b>&nbsp;&nbsp;&nbsp; sgv -stereo cow.osg</b>
&nbsp; </p> <p>
<hr> <hr>
<h3>
<h3> Size matters:</h3> Size matters:</h3>
<p>For appropriate depth perception the stereo code creates separate left For appropriate depth perception the stereo code creates separate left
and eye views, both the frustum and modelview are shifted to account for 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 the separate eye views.&nbsp; To achieve the right amount of adjustment
OSG requires the users eye separation, the distance from the eyes to the screen the OSG requires the users eye separation, the distance from the eyes to
and the height of the screen.&nbsp; The OSG will use the defaults of 0.05m,0.5m the screen and the height of the screen.&nbsp; The OSG will use the defaults
and 0.26m respectively which are assumed to be reasonable defaults for most of 0.05m,0.5m and 0.26m respectively which are assumed to be reasonable
users workstation configurations, note the OSG_SCREEN_HEIGHT is the image defaults for most users workstation configurations, note the OSG_SCREEN_HEIGHT
height rather than total size of your monitor/display surface.&nbsp; For is the image height rather than total size of your monitor/display surface.&nbsp;
the best stereo effects please measure these values and set them up via the For the best stereo effects please measure these values and set them up
environmental variables.&nbsp; Once set the views you get should give improved via the environmental variables.&nbsp; Once set the views you get should
depth perception.&nbsp; A good way of measuring how well you are configured give improved depth perception.&nbsp; A good way of measuring how well
for your display is to fly away from objects (using the FlightManipulator you are configured for your display is to fly away from objects (using
for instance, but not the TrackballManipulator, see below) so that they the FlightManipulator for instance, but not the TrackballManipulator, see
go of toward infinity. As they move away the offset between the two images below) so that they go of toward infinity. As they move away the offset
should tend towards your eye separation, if you achieve this then the object between the two images should tend towards your eye separation, if you
will be perceived as at infinity.</p> achieve this then the object will be perceived as at infinity.
<br>
<hr> <hr>
<h3>
<h3> Camera Manipulator Modes:</h3> Camera Manipulator Modes:</h3>
<p>There are three osgUtil::CameraManipulator's which come with osgUtil, There are three osgUtil::CameraManipulator's which come with osgUtil, which
which operate as a Trackball, Drive and Flight modes of interaction (see operate as a Trackball, Drive and Flight modes of interaction (see sgv.html
sgv.html for how to invoke them in the scene graph viewer). The osgUtil::Trackball for how to invoke them in the scene graph viewer). The osgUtil::Trackball
Manipulator automatically scales the fusion distance to that which will Manipulator automatically scales the fusion distance to that which will
fusion on center point of rotation - this will appear at the middle of the fusion on center point of rotation - this will appear at the middle of
monitor at the monitors depth. Whereas, the osgUtil::DriveManipualtor, osgUtil::FlightManipulator the monitor at the monitors depth. Whereas, the osgUtil::DriveManipualtor,
scale the fusion distance to the distance the viewer is from the screen, osgUtil::FlightManipulator scale the fusion distance to the distance the
the results in a perception that the virtual world is scaled to physical viewer is from the screen, the results in a perception that the virtual
world, this is clearly better for simulators and alike. You can control world is scaled to physical world, this is clearly better for simulators
the fusion of the image in these two modes via the osg::Camera::setFusionDistanceMode(FusionDistanceMode and alike. You can control the fusion of the image in these two modes via
mode) where mode can be osg::Camera::PROPORTIONAL_TO_LOOK_DISTANCE (used the osg::Camera::setFusionDistanceMode(FusionDistanceMode mode) where mode
by Trackball) or osg::Camera::PROPORTIONAL_TO_SCREEN_DISTANCE (used by can be osg::Camera::PROPORTIONAL_TO_LOOK_DISTANCE (used by Trackball) or
Drive and Flight), and osg::Camera::setFusionDistanceRatio(float). See osg::Camera::PROPORTIONAL_TO_SCREEN_DISTANCE (used by Drive and Flight),
include/osg/Camera for further details, and the camera manipulators for and osg::Camera::setFusionDistanceRatio(float). See include/osg/Camera
implementation details. The fusion distance ratio defaults to 1.0 but for further details, and the camera manipulators for implementation details.
can be biased to move objects out or into screen, they will also appear The fusion distance ratio defaults to 1.0 but can be biased to move objects
to get smaller and larger respectively. The camera manipulators allow out or into screen, they will also appear to get smaller and larger respectively.
the user to alter this value at runtime via the '+' and '-' keys.</p> The camera manipulators allow the user to alter this value at runtime via
the '+' and '-' keys.
</body> </body>
</html> </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> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <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> <title>Documentionn Index</title>
</head> </head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000"> <body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="doc/images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640> <img SRC="doc/images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table> <table>
<tr> <tr>
<td><a href="doc/index.html">Index</a> </td> <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/introduction.html">Introduction</a></td>
<td><a href="doc/install.html">Install</a> </td>
<td><a href="doc/dependencies.html">Dependencies</a> </td> <td><a href="doc/contents.html">Contents</a></td>
<td><a href="doc/demos.html">Demos</a> </td>
<td><a href="doc/data.html">Data</a> </td> <td><a href="doc/install.html">Install</a></td>
<td><a href="doc/sgv.html">Viewer</a> </td>
<td><a href="doc/stereo.html">Stereo</a> </td> <td><a href="doc/dependencies.html">Dependencies</a></td>
<td><a href="doc/plan.html">Plan</a> </td>
<td><a href="doc/documentation.html">Reference Guides</a> </td> <td><a href="doc/demos.html">Demos</a></td>
</tr>
<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> </table>
<h2> <h2>
<u>Index</u></b></h2> <u>Index</u></h2>
<table> <table>
<tr> <tr>
<td><a href="doc/introduction.html">Introduction</a> </td> <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>Introduction to Scene Graph in general, the OpenSceneGraph project
<td><a href="doc/contents.html">Contents</a> </td> itself and how to use it.</td>
<td>A list of the directories in the distribution.</td> </tr>
</td>
<tr> <tr>
<td><a href="doc/install.html">Install</a> </td> <td><a href="doc/contents.html">Contents</a></td>
<td>A guide of how to compile and install on all the supported platforms.</td>
</td>
<tr> <td>A list of the directories in the distribution.</td>
<td><a href="doc/dependencies.html">Dependencies</a> </td> </tr>
<td>Listing of all the dependancies of the project, with links of where to download them.</td>
</td>
<tr> <tr>
<td><a href="doc/demos.html">Demos</a> </td> <td><a href="doc/install.html">Install</a></td>
<td>Thumbnails and info on all the demo applications which come with this distribution.</td>
</td>
<tr> <td>A guide of how to compile and install on all the supported platforms.</td>
<td><a href="doc/data.html">Data</a> </td> </tr>
<td>List of websites where one can download interesting and useful data from.</td>
</td>
<tr> <tr>
<td><a href="doc/sgv.html">Viewer</a> </td> <td><a href="doc/dependencies.html">Dependencies</a></td>
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and the rest of demos.</td>
</td>
<tr> <td>Listing of all the dependencies of the project, with links of where
<td><a href="doc/stereo.html">Stereo</a> </td> to download them.</td>
<td>Documentation on the commandline paramters and environmential variables which control stereo.</td> </tr>
</td>
<tr> <tr>
<td><a href="doc/plan.html">Plan</a> </td> <td><a href="doc/demos.html">Demos</a></td>
<td>Details of development plans.</td>
</td>
<tr> <td>Thumbnails and info on all the demo applications which come with this
<td><a href="doc/documentation.html">Reference Guides</a> </td> distribution.</td>
<td>Reference guides of the core libraries.</td> </tr>
</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>
</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> </table>
</body> </body>