Moved the main documentation onto the wiki website, and removed from the
OpenSceneGraph distribution
22
NEWS.txt
@@ -1,6 +1,28 @@
|
||||
OSG News (most significant items from ChangeLog)
|
||||
================================================
|
||||
|
||||
16th November 2004 - OpenSceneGraph-0.9.8
|
||||
|
||||
>>> Support for database archives, improved pager, 3d compressed textures
|
||||
|
||||
Database archives.
|
||||
|
||||
Improved pager support with better multi-processor stability and constant frame rate
|
||||
peformance.
|
||||
|
||||
STL import.
|
||||
|
||||
Spelling and typo correction blitz on osg, osgDB and osgUtil libraries.
|
||||
|
||||
NodeTrackManipulator improved.
|
||||
|
||||
General bug fixes.
|
||||
|
||||
New examples:
|
||||
osgplanets
|
||||
osgspotlight
|
||||
osglauncher
|
||||
|
||||
18th August 2004 - OpenSceneGraph-0.9.7-2
|
||||
|
||||
Build fixes for VisualStudio6.0.
|
||||
|
||||
10
README.txt
@@ -1,9 +1,11 @@
|
||||
Welcome to the OpenSceneGraph (OSG).
|
||||
|
||||
For information on the project, this distribution, how to compile and
|
||||
run libraries and examples, and for documention open up index.html
|
||||
in your perfered html browser.
|
||||
For up to date information on the project, how to compile and run libraries
|
||||
and examples, and see the documentation on the OpenSceneGraph website.
|
||||
|
||||
http://www.openscenegraph.org
|
||||
|
||||
|
||||
Robert Osfield.
|
||||
robert@openscenegraph.com
|
||||
April 2002.
|
||||
November 2004.
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB |
@@ -1,16 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html><head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="MindManager v4.0.60">
|
||||
<meta name="author" content="Mindjet LLC">
|
||||
<title>Design Patterns</title></head>
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<!-- To copy the MindManager image map please begin here (with next <center> tag) -->
|
||||
|
||||
<center><img src="DesignPatterns.gif" border="0" usemap="#mindmap"></center><map name="mindmap">
|
||||
</map>
|
||||
|
||||
<!-- Copy until here (including the </map> tag) -->
|
||||
|
||||
</body></html>
|
||||
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,16 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html><head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="MindManager v4.0.60">
|
||||
<meta name="author" content="">
|
||||
<title>Mission</title></head>
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<!-- To copy the MindManager image map please begin here (with next <center> tag) -->
|
||||
|
||||
<center><img src="Mission.gif" border="0" usemap="#mindmap"></center><map name="mindmap">
|
||||
</map>
|
||||
|
||||
<!-- Copy until here (including the </map> tag) -->
|
||||
|
||||
</body></html>
|
||||
BIN
doc/UML/osg.png
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 21 KiB |
@@ -1,55 +0,0 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.6 [en-gb]C-CCK-MCD NetscapeOnline.co.uk (Win95; I) [Netscape]">
|
||||
<title>Data sources</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#990066"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a> </td>
|
||||
<td><a href="introduction.html">Introduction</a> </td>
|
||||
<td><a href="contents.html">Contents</a> </td>
|
||||
<td><a href="install.html">Install</a> </td>
|
||||
<td><a href="dependencies.html">Dependencies</a> </td>
|
||||
<td><a href="examples.html">examples</a> </td>
|
||||
<td><a href="data.html">Data</a> </td>
|
||||
<td><a href="osgviewer.html">Viewer</a> </td>
|
||||
<td><a href="stereo.html">Stereo</a> </td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a> </td>
|
||||
<td><a href="documentation.html">Reference Guides</a> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2><u>Data Sources</u></h2>
|
||||
<ul>
|
||||
<li>Open scene graph .osg demo data set can downloaded here:</li>
|
||||
<a href="http://sourceforge.net/project/showfiles.php?group_id=11278&release_id=173283">http://sourceforge.net/project/showfiles.php?group_id=11278&release_id=17328</a><br>
|
||||
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Terrain models in OpenFlight .flt and TerraPage format go to the
|
||||
download page at </li>
|
||||
<a href="http://www.terrex.com">http://www.terrex.com</a> <br>
|
||||
<br>
|
||||
<li>Terrain models in OpenFlight .flt format at Grime:</li>
|
||||
<a href="http://www.grime.net/Downloads/simulations.htm">http://www.grime.net</a> <br>
|
||||
<br>
|
||||
<li>Various 3d models, many in .3ds format at 3D Cafe.</li>
|
||||
<i><a href="http://www.3dcafe.com">http://www.3dcafe.com</a></i> <br>
|
||||
<br>
|
||||
<li>Various 3d models, a various formats.</li>
|
||||
<i><a href="http://www.3dmodelworld.com">http://www.3dmodelworld.com</a></i> <br>
|
||||
<br>
|
||||
<li>Various 3d models, many in .3ds format at 3D Rocket Fuel.</li>
|
||||
<i><a href="http://www.3drocketfuel.com">http://www.3drocketfuel.com</a></i>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,123 +0,0 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.75C-SGI [en] (X11; I; IRIX64 6.5 IP27) [Netscape]">
|
||||
<title>OSG Documentation</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2> <u>Reference Guides</u></h2>
|
||||
The documentation on the OSG is still in its early stages, and far from
|
||||
complete. If you can't find your answers in what documentation there
|
||||
currently is, please feel free to post the question on the OSG mailing
|
||||
list.
|
||||
<p><u>Reference guides (automatically generated using doc++)</u> </p>
|
||||
<blockquote>
|
||||
<table cellpadding="2" cellspacing="2" border="0"
|
||||
style="text-align: left; width: 528px; height: 272px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a href="doc++/osg/HIER.html">osg/</a></td>
|
||||
<td style="vertical-align: top;">core scene graph<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgUtil/HIER.html">osgUtil/</a></td>
|
||||
<td style="vertical-align: top;">utilitiy library</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a href="doc++/osgDB/HIER.html">osgDB/</a></td>
|
||||
<td style="vertical-align: top;">database library<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgParticle/HIER.html">osgParticle/</a></td>
|
||||
<td style="vertical-align: top;">Nodekit with Particle support<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgText/HIER.html">osgText/</a></td>
|
||||
<td style="vertical-align: top;">Nodekit with text support<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgTerrain/HIER.html">osgTerrain/</a><br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">Nodekit with support
|
||||
generating large scale geospatial paged databases</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgSim/HIER.html">osgSim/</a></td>
|
||||
<td style="vertical-align: top;">Nodekit for visual simulation<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a href="doc++/osgFX/HIER.html">osgFX/</a></td>
|
||||
<td style="vertical-align: top;">Nodekit which adds support for
|
||||
special effects<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgGL2/HIER.html">osgGL2/</a><br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">Nodekit with OpenGL2 support<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a href="doc++/osgGA/HIER.html">osgGA/</a></td>
|
||||
<td style="vertical-align: top;">utility library for adapting
|
||||
Windowing events etc<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a
|
||||
href="doc++/osgProducer/HIER.html">osgProducer/</a></td>
|
||||
<td style="vertical-align: top;">windowing/viewer library built
|
||||
ontop of OpenProducer<br>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</blockquote>
|
||||
<p><u>UML Diagrams</u> </p>
|
||||
<blockquote><a href="UML/osg.png">osg</a>
|
||||
UML diagram of
|
||||
the osg core library <br>
|
||||
<a href="UML/osgutils.png">osgUtil</a>
|
||||
UML diagram of the osg utilities library</blockquote>
|
||||
<p></p>
|
||||
<p><u>Mind Maps</u> </p>
|
||||
<blockquote><a href="MindMaps/DesignPatterns/DesignPatterns.html">Design
|
||||
Pattern used in the OSG.</a> <br>
|
||||
<a href="MindMaps/Mission/Mission.html">Mission Statement for OSG.</a></blockquote>
|
||||
<p></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,212 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>examples</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
|
||||
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
|
||||
<td><a href="install.html">Install</a></td>
|
||||
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
|
||||
<td><a href="data.html">Data</a></td>
|
||||
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>
|
||||
<a NAME="Running the demos"></a><u>Running the examples</u></h2>
|
||||
Once the OpenSceneGraph is <a href="install.html">installed</a> you will
|
||||
need place the location where it was installed on the you systems paths
|
||||
environmental variables, and then download the <a href="data.html">demo
|
||||
data</a> and set the <b>OSG_FILE_PATH</b> so that the file loading can
|
||||
locate the datasets. It is probably worth setting you autoexec.bat, .bashrc
|
||||
or.tcsh etc to pick up on these settings so that next time you log in everything
|
||||
is in easy reach.
|
||||
<li>
|
||||
Windows:</li>
|
||||
|
||||
<ul><b>set PATH = C:/all/the/exisitng/paths;C:/OpenSceneGraph/bin</b>
|
||||
<br><b>set OSG_FILE_PATH = C:/OpenSceneGraph-Data;C:/OpenSceneGraph-Data/Images</b></ul>
|
||||
|
||||
<li>
|
||||
Unix</li>
|
||||
|
||||
<ul><b>export PATH = ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
|
||||
<br><b>export LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib</b>
|
||||
<br><b>export OSG_FILE_PATH = /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images</b>
|
||||
<br>or
|
||||
<br><b>setenv PATH ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
|
||||
<br><b>setenv LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib</b>
|
||||
<br><b>setenv OSG_FILE_PATH /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images</b></ul>
|
||||
|
||||
<li>
|
||||
MacOSX:</li>
|
||||
|
||||
<ul><b>setenv PATH "${PATH}:${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins"</b>
|
||||
<br><b>setenv DYLD_LIBRARY_PATH "${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins"</b>
|
||||
<br><b>setenv DYLD_BIND_AT_LAUNCH</b>
|
||||
<br><b>setenv OSG_FILE_PATH "/home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images"</b></ul>
|
||||
|
||||
All the demos run on the commandline, most requiring parameters, such as
|
||||
what file to load, if you are in any doubt just run the application and
|
||||
it will either run, or provide help on what options it accepts.
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="osgviewer.html"><img SRC="images/osgviewer_cow.jpg" BORDER=0 height=100 width=128></a></td>
|
||||
|
||||
<td><b>osgviewer cow.osg</b></td>
|
||||
|
||||
<td>The scene graph viewer demo uses osgProducer::Viewer to bring up a basic
|
||||
viewer. To find out what command line arguments it takes simply run osgviewer
|
||||
without any arguments. To load a model simple run osgviewer filename.ext. The
|
||||
osgProducer::Viewer provides an extensive set of operations that can be used
|
||||
to display information about the loaded database such as performance stats,
|
||||
through to output a snapshot of the screen, which is how these thumbnails
|
||||
were created. For a full list of key presses and mouse interaction read
|
||||
the <a href="osgviewer.html">osgviewer</a> documentation.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="stereo.html"><img SRC="images/osgviewer_stereo.jpg" BORDER=0 height=100 width=128></a></td>
|
||||
|
||||
<td><b>osgviewer --stereo cessna.osg</b></td>
|
||||
|
||||
<td>The scene graph viewer also supports anaglyphic, quad buffered, and
|
||||
split screen stereo modes, for a full list of options and environmental
|
||||
variables see the <a href="stereo.html">stereo</a> documentation.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><img SRC="images/hangglide.jpg" BORDER=0 height=100 width=128></td>
|
||||
|
||||
<td><b>hangglide</b></td>
|
||||
|
||||
<td>The hang glide demo creates a simple flying site (Don Burns local hang
|
||||
glide site in fact!), demonstrating how to create simple terrain, trees
|
||||
and skydomes, and how to implement a simple flight camera manipulator to
|
||||
allow the user to fly around. </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><img SRC="images/osgbillboard.jpg" BORDER=0 height=100 width=128></td>
|
||||
|
||||
<td><b>osgbillboard lz.rgb</b></td>
|
||||
|
||||
<td>Demonstrates how to create the various types of billboard supported
|
||||
by the OpenSceneGraph. Billboards are typically used for trees or particles
|
||||
effects. </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><img SRC="images/osghud.jpg" BORDER=0 height=100 width=128></td>
|
||||
|
||||
<td><b>osghud glider.osg</b></td>
|
||||
|
||||
<td>Very similar to the basic osgviewer 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. </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. </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. </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! </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><img SRC="images/osgwindows.jpg" BORDER=0 height=100 width=128></td>
|
||||
|
||||
<td><b>osgwindows cow.osg</b></td>
|
||||
|
||||
<td>An example of multiple windows all running at once. </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1,99 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>OSG Documentation</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg"><br>
|
||||
<br>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>
|
||||
<u>Index</u></h2>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td>Introduction to Scene Graph in general, the OpenSceneGraph
|
||||
project
|
||||
itself and how to use it.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td>A list of the directories in the distribution.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td>A guide of how to compile and install on all the supported
|
||||
platforms.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td>Listing of all the dependencies of the project, with links of
|
||||
where
|
||||
to download them.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td>Thumbnails and info on all the demo applications which come
|
||||
with this
|
||||
distribution.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td>List of websites where one can download interesting and
|
||||
useful data
|
||||
from.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td>List of key bindings support by the osgProducer::Viewer and
|
||||
hence osgviewer 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 style="vertical-align: top;"><a href="osgdem.html">osgdem</a><br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">Documentation on how to use the
|
||||
osgdem utility<br>
|
||||
</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>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
344
doc/install.html
@@ -1,344 +0,0 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>Installation instructions</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#990066"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2> <u>Compiling and installing the OpenSceneGraph</u></h2>
|
||||
The scene graph depends upon Standard C++, STL and OpenGL so you need a
|
||||
C++ compiler up to the task and OpenGL or Mesa installed. The example
|
||||
applications depend upon Open Producer which you'll need to download and
|
||||
install from the Producer website. The OSG has it own native ascii file
|
||||
format, and .rgb image reader which allows you read the example data
|
||||
with any dependencies other than C++, STL and OpenGL.
|
||||
<p>The OSG also has a set of plug-ins which support non-native 3d
|
||||
database and image formats, several have no dependencies on external
|
||||
libraries (flt,3ds,obj, lwo,dw, tga & pic), while others
|
||||
(pfb,jpeg,gif,tiff) require other libraries to be installed to compile
|
||||
them. If you don't already have them installed then don't worry, you'll
|
||||
still be able to use the OSG, just comment out the plugins you can't
|
||||
compile from the Make/makedirdefs file. The core osg library and viewer
|
||||
has been designed to load the plug-ins at run-time only and if they are
|
||||
required to load a specific data set. If you don't need them for your
|
||||
datasets then it won't matter that you haven't been able to compile all
|
||||
the plug-ins. A full list of dependencies and where to download the
|
||||
required libraries are listed in the <i><a href="dependencies.html">dependencies.html</a></i> </p>
|
||||
<p>If you're coming across the OSG for the first time and want to get
|
||||
started quickly, go right ahead and follow the compilation instructions.
|
||||
You can always later download the libraries which the plug-ins require
|
||||
if you eventually need them. </p>
|
||||
<ul>
|
||||
<li> <a href="#Compiling%20under%20Windows%20with%20Visual%20Studio">Compiling
|
||||
under Windows with Visual Studio</a></li>
|
||||
<li> Compiling under Unix (including Mac OSX and Cygwin)</li>
|
||||
<p><br>
|
||||
Building the OSG requires 'gmake', due to the extensive use of gmake
|
||||
directives in the Makefiles. You can get gmake from here if you don't
|
||||
already have it installed: http://www.gnu.org/software/make/ </p>
|
||||
<p>Almost all of the unix compiling is done simply with <b>make;
|
||||
make install</b> with <b>make help</b> to bring up help. For platform
|
||||
specific details: </p>
|
||||
<ul>
|
||||
<li> <a href="#Cygwin">Cygwin</a></li>
|
||||
<li> <a href="#Linux">Linux</a></li>
|
||||
<li> <a href="#Free%20BSD">Free BSD</a></li>
|
||||
<li> <a href="#Mac%20OSX">Mac OSX</a></li>
|
||||
<li> <a href="#IRIX">IRIX</a></li>
|
||||
<li> <a href="#Solaris">Solaris</a></li>
|
||||
</ul>
|
||||
</ul>
|
||||
<hr>
|
||||
<h3> <a name="Compiling under Windows with Visual Studio"></a><u>Compiling
|
||||
under Windows with Visual Studio.</u></h3>
|
||||
<p>The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw
|
||||
located in the VisualStudio below the OSG this root directory. VC++6.0
|
||||
workspace files can also be used in VisualStudio7.0 without problem. </p>
|
||||
<p><b>IMPORTANT NOTE:</b> Whilst the OSG will compile cleanly with the
|
||||
basic VC++6.0 and its own STL implementation, the OSG will crash
|
||||
regularily due to bugs in VC++6.0's STL. VC++6.0's STL is horribly
|
||||
broken and therefore is <b>*NOT*</b> supported. Do not attempt to use
|
||||
the OSG in conjunction with native VC++6.0 STL implemention. </p>
|
||||
<p>The supported combinations are: </p>
|
||||
<ol>
|
||||
<li> Visual Studio7.0 .NET </li>
|
||||
<li> Visual Studio6.0 + Dinkumware's STL bug fix patches (see details
|
||||
below).</li>
|
||||
<li> Visual Studio6.0 + STLport (see details below)</li>
|
||||
</ol>
|
||||
<p>The OSG is composed of a number of scene graph libraries (with Core
|
||||
in front of the project names), executables (with examples in front of
|
||||
the project names), and plugins which read and write 3D data formats and
|
||||
2D image formats (with osgPlugins in front of the project names). To
|
||||
get the OSG running you'll need at least to compile Core
|
||||
osg,osgUtil,osgDB,osgProducer, osgPlugin dot_osg and Demo osgviewer. The
|
||||
rest of the libraries and executables are optional and can be compiled
|
||||
if you need them, however for simplicity I would recommend doing a
|
||||
batch build of all the libraries and executables in the distribution,
|
||||
some of the plug-ins which support non native file formats may not
|
||||
compile due to dependencies on other libraries (such as libpng), you
|
||||
can ignore these compilation errors unless you need to load the related
|
||||
file types. To help the compilation the plugins, osgProducer and
|
||||
osgText one can download .zip archive will all the dependencies in it.
|
||||
Further details on this .zip file can be found in <i><a
|
||||
href="dependencies.html">dependencies.html</a></i> </p>
|
||||
<p>To execute the viewer the file path for the .dll's and .exe, both
|
||||
compiled into the OSG's bin directory, need to be setup, such as by
|
||||
adding the PATH to your autoexec.bat, its also useful to add the
|
||||
OSGFILEPATH to your autoexec.bat to help the location of datafiles. For
|
||||
example : </p>
|
||||
<p>SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images <br>
|
||||
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\osg-0.8.43\bin; </p>
|
||||
<p>To help compilation of the image reader plugins, various image
|
||||
libraries have been zipped up for your convenience, your find these on
|
||||
the OSG release download directory </p>
|
||||
<h3> Using Visual Studio .NET</h3>
|
||||
Visual Studio 7.0 .MET has a solid STL implementation and improve
|
||||
standard C++ complient and works with the OpenSceneGraph without
|
||||
problems. This is the recommended route.
|
||||
<h3> Using Dinkumware STL</h3>
|
||||
The basic jist is that you'll need to download their STL
|
||||
implementation, and follow their instructions of how to force
|
||||
VisualStudio to pick up the new STL implementation. More details at <a
|
||||
href="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</a>.
|
||||
<p>Once it is installed everything should compile fine and not crash,
|
||||
but you won't be running at full speed since the build #ifdef's out some
|
||||
important state optimizations since the basic VisualStudio can't handle
|
||||
it. You can safely remove the #ifdef from src/osgUtil/Otimizer.cpp,
|
||||
Line 44. The #ifdef is smart enough to do this automatically when using
|
||||
VisualStudio .NET and STLport so that modification by hand won't be
|
||||
required. Unfortunately there doesn't seem to be a special define
|
||||
associated with the Dinkumware STL for the #ifdef to pick up on. </p>
|
||||
<h3> Using STLport</h3>
|
||||
<p>A very good HOWTO for installing and making the STLPort libs on
|
||||
MSVC6 can be found at <a
|
||||
href="http://www.softadvances.com/articles/stlportusing.html">http://www.softadvances.com/articles/stlportusing.html</a> </p>
|
||||
<p>The OSG has been tested under Windows with STLport-4.5, which allows
|
||||
the users to configure the type of STL support required for STLport
|
||||
itself. The key configuration that the OSG needs to do is to enable the
|
||||
wrapping of MS's own iostreams, than using STLport's own implementation.
|
||||
The later is not required because this has not be problematic under
|
||||
Windows, it is only the container classes and algorithms that need
|
||||
replacing. Using the iostream wrapping option means the STLport can
|
||||
just be used on your include path, there is no need to compile STLport
|
||||
itself, or link into any special libraries. To configure STLport simply
|
||||
comment IN (its commented out by default), the following line from
|
||||
STLport-4.5/stlport/stl_user_config.h so it should look: </p>
|
||||
<ul>
|
||||
# define _STLP_NO_OWN_IOSTREAMS 1
|
||||
</ul>
|
||||
<p>Then configure the includes path in Visual Studio to pick up on
|
||||
STLport: Select the "Tools" menu. Select "Options" In the Options
|
||||
dialog, select the "Directories" tab Under the "include" option, add the
|
||||
path to STLport4.5, something like: D:/STLport4.5/stlport Then press
|
||||
the up array to move the entry all the way to the top of the list, thus
|
||||
overriding MS's own STL implementations. </p>
|
||||
<h3>Linking your own apps to the OpenSceneGraph</h3>
|
||||
<p>All OpenSceneGraph libraries, plugins and executables are compiled
|
||||
with the multi-threaded dll option turned ON, and with RTTI turned ON.
|
||||
Your own projects which link to the OpenSceneGraph must uses these same
|
||||
options or your application will crash or produce unpredicatable
|
||||
behavior. </p>
|
||||
<h3>Syntax highlight + OpenScenegraph Standard C++ style headers</h3>
|
||||
<p>The OpenSceneGraph uses Standard C++ style extensionless headers,
|
||||
which poor VisualStudio doesn't automatically recognize as suitable for
|
||||
syntax highlighting (compile works fine though), even the StandardC++
|
||||
header themselves require a hack to get VisualStudio to highlight them
|
||||
properly. The easy answer is to use that same hack to get it to
|
||||
recognize the OpenSceneGraph headers too. To make easy a modified
|
||||
header listing file can be found in the VisualStudio/LANDEXT.DAT. First
|
||||
copy the original LANDEXT.DAT file (located in C:\Progam
|
||||
Files\Microsoft Visual Studio\Common\MSDev98\Bin) to LANDEXT.DAT.BKP,
|
||||
and then copy over the OpenSceneGraph one. Once you have done this
|
||||
VisualStudio will syntax highlight them without problem. </p>
|
||||
<hr>
|
||||
<h3> <a name="Linux"></a><u>Compiling under Linux</u></h3>
|
||||
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
|
||||
<blockquote><tt>% make</tt></blockquote>
|
||||
Note, make should automatically detect linux and build optimized
|
||||
targets for your system. And if you wish to install the OSG type:
|
||||
<blockquote><tt>% make install</tt></blockquote>
|
||||
or
|
||||
<blockquote><tt>% make instlinks</tt></blockquote>
|
||||
To get full details of make options, type:
|
||||
<blockquote><tt>% make help</tt></blockquote>
|
||||
(highly recommended)
|
||||
<p>The osgText library now depends upon GLU1.3 functionality, and only
|
||||
the recent Mesa version have this as standard. Unfortunately not all
|
||||
Linux distributions are up to date even recent ones. If you have
|
||||
problems compiling osgText due to GLU problems then check out the
|
||||
details at the bottom of this file, under the title RedHat7.1 &
|
||||
GLU1.3 for a quick way of installing GLU1.3 in the right place. </p>
|
||||
<h3> RedHat 7.2 & GLU1.3</h3>
|
||||
I have posted a simple fix for those of us who have been unable to
|
||||
correctly build OSG 0.8.43 on Redhat 7.2. You can download it at
|
||||
http://www.openscenegraph.org/download/dependencies/ReadHat7.2_fixglu.tar.gz
|
||||
To install it, follow these steps:
|
||||
<p>English </p>
|
||||
<blockquote>1) Untar the tarball. It will create a directory called
|
||||
fixosg/ <br>
|
||||
2) Change to the ReadHat7.2_fixglu/ directory <br>
|
||||
3) Become root <br>
|
||||
4) Run the script called fixglu</blockquote>
|
||||
Cmd line
|
||||
<blockquote>tar xvzf ReadHat7.2_fixglu.tar.gz <br>
|
||||
cd ReadHat7.2_fixglu/ <br>
|
||||
su (your root password) <br>
|
||||
./fixglu <br>
|
||||
exit</blockquote>
|
||||
You should then be able to do a "make" in your OSG directory and
|
||||
everything will build as it should. Let me know if this doesn't work and
|
||||
I will try to improve it. Email me directly for help instead of posting
|
||||
here. There's a README in the tarball with some info on what the script
|
||||
actually does. There's nothing wrong with OSG itself; the problem with
|
||||
Redhat 7.2 is that it doesn't have GLU 1.3 by default, which OSG is now
|
||||
dependent on (for osgText.) Good luck everyone. - Clay
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h3> <a name="Free BSD"></a><u>Compiling under FreeBSD</u></h3>
|
||||
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
|
||||
<blockquote><tt>% make</tt></blockquote>
|
||||
Note, make should automatically detect linux and build optimized
|
||||
targets for your system. And if you wish to install the OSG type:
|
||||
<blockquote><tt>% make install</tt></blockquote>
|
||||
or
|
||||
<blockquote><tt>% make instlinks</tt></blockquote>
|
||||
To get full details of make options, type:
|
||||
<blockquote><tt>% make help</tt></blockquote>
|
||||
(highly recommended)
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h3> <a name="IRIX"></a><u>Compiling under IRIX</u></h3>
|
||||
Since the OSG uses Standard C++ features such as STL it is important to
|
||||
have an up to date version of the MIPSPro compilers, ie. 7.3 or later.
|
||||
Support for MIPSPro7.2.1 has now been dropped since it was becoming to
|
||||
unwildy to support and is very rarely used in the OSG community. It is
|
||||
recommended to use MIPSPro7.3.1.1m.
|
||||
<p>Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: </p>
|
||||
<blockquote><tt>% make</tt></blockquote>
|
||||
Note, make should automatically detect linux and build optimized
|
||||
targets for your system. And if you wish to install the OSG type:
|
||||
<blockquote><tt>% make install</tt></blockquote>
|
||||
or
|
||||
<blockquote><tt>% make instlinks</tt></blockquote>
|
||||
To get full details of make options, type:
|
||||
<blockquote><tt>% make help</tt></blockquote>
|
||||
(highly recommended) <br>
|
||||
<hr>
|
||||
<h3> <a name="Solaris"></a><u>Compiling under Solaris</u></h3>
|
||||
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
|
||||
<blockquote><tt>% make</tt></blockquote>
|
||||
Note, make should automatically detect linux and build optimized
|
||||
targets for your system. And if you wish to install the OSG type:
|
||||
<blockquote><tt>% make install</tt></blockquote>
|
||||
or
|
||||
<blockquote><tt>% make instlinks</tt></blockquote>
|
||||
To get full details of make options, type:
|
||||
<blockquote><tt>% make help</tt></blockquote>
|
||||
(highly recommended) <br>
|
||||
<hr>
|
||||
<h3> <a name="Mac OSX"></a><u>Compiling under MacOS X</u></h3>
|
||||
For anyone who's ever used a Unix box for development, well, the mac <i>is</i>
|
||||
a Unix box. It's very simple to get OpenSceneGraph building and running
|
||||
under Mac OS X. The main requirement is that you need to have installed
|
||||
the Developer tools from the CD that comes for free with OS X. This
|
||||
gives you compilers, headers, frameworks - stuff like Producer and
|
||||
Carbon for developers. Get those here:
|
||||
<ul>
|
||||
<li> The Apple <a
|
||||
href="http://developer.apple.com/tools/macosxtools.html"> developer
|
||||
tools website</a>. </li>
|
||||
</ul>
|
||||
<p>Everything is done command-line, so you need to get to a shell
|
||||
before proceeding. The Mac comes with an app in Applications/Utilities
|
||||
called Terminal - open up any Finder window (e.g double-click on your
|
||||
hard disk icon), click on the Applications icon at the top right of the
|
||||
window, then click on the Utilities folder to get access to the
|
||||
Terminal. When you start Terminal it brings you up a csh running from
|
||||
your ~/ directory. Now, go to your OpenSceneGraph directory, and simply
|
||||
type: </p>
|
||||
<p> </p>
|
||||
<blockquote> <tt>make -j2</tt> </blockquote>
|
||||
And some time later you'll be rewarded with a lovely set of binaries
|
||||
and libraries. The Mac OSX build currently only builds a subset of the
|
||||
total functionality in OpenSceneGraph, but a large subset at that. Some
|
||||
of the remaining projects are known to build as well, but have external
|
||||
dependencies on libraries such as libtiff, libjpg, libpng, etc. and so
|
||||
are not included in the default build. However, if you examine the file <tt>OpenSceneGraph/Make/makedefs</tt>
|
||||
you will find which extra projects build for the mac, provided you have
|
||||
the external libraries required. Details on how to install these
|
||||
external libraries are outside the scope of this document, but for
|
||||
starting points, see one of:
|
||||
<ul>
|
||||
<li> The <a href="http://fink.sourceforge.net">fink project</a>. </li>
|
||||
<li> The <a href="http://gnu-darwin.sourceforge.net/">GNU-Darwin
|
||||
project</a>. </li>
|
||||
</ul>
|
||||
<h4> Running the examples </h4>
|
||||
Once you've got OpenSceneGraph built, you're ready to run your
|
||||
examples. As with other builds on other platforms, OpenSceneGraph
|
||||
requires you to set a few environment variables which describe your
|
||||
installation. These environment variables should be full-path, not
|
||||
relative, and a list of these for a csh-derived environment follow:
|
||||
<blockquote> <tt> setenv OSGHOME `pwd`/OpenSceneGraph <br>
|
||||
setenv OSGFILEPATH `pwd`/OpenSceneGraph-Data <br>
|
||||
setenv OSG_LD_LIBRARY_PATH ${OSGHOME}/lib <br>
|
||||
setenv DYLD_LIBRARY_PATH ${OSG_LD_LIBRARY_PATH} <br>
|
||||
setenv DYLD_BIND_AT_LAUNCH <br>
|
||||
</tt> </blockquote>
|
||||
<h4> Notes </h4>
|
||||
<ul>
|
||||
<li> <b>Input Focus</b>: Many OSG examples have keyboard commands,
|
||||
however, when launching apps from the Mac Terminal, the focus seems to
|
||||
remain in the Terminal. Option-Clicking on the graphics window focuses
|
||||
it as the recipient of events, and allows these keyboard commands to
|
||||
then function properly. </li>
|
||||
<li> <b>Known Bugs</b>: </li>
|
||||
<li> <b>Installation</b>: No package based version of an OS X
|
||||
installer yet exists. </li>
|
||||
</ul>
|
||||
<h3> <a name="Cygwin"></a><u>Compiling under Cygwin</u></h3>
|
||||
To compile, from the OSG root directory, type: make Note, make should
|
||||
automatically detect your system and build optimized targets for your
|
||||
system. And if you wish to install the OSG type: make install Note that
|
||||
make symbolic links don't seem to work under cygwin, so a make instlinks
|
||||
will simply copy files just like make install. 'make install' places
|
||||
all files in /usr/local/OpenSceneGraph under appropriate sub
|
||||
directories. To get full details of make options, type: make help
|
||||
(highly recommended)
|
||||
<p>OSG_FILE_PATH environmental variable </p>
|
||||
<p>For the OSG to locate file data files easily an environmental
|
||||
variable OSG_FILE_PATH is used at run-time by the osgDB library. Note,
|
||||
for examples below substitute in the ${OSGDATA} directory with your own
|
||||
path where appropriate) Add the following to your .cshrc (note paths
|
||||
separated by colon's): setenv OSG_FILE_PATH
|
||||
./:${OSGDATA}:${OSGDATA}/Images Or the following if you're using a sh
|
||||
compatible shell : export
|
||||
OSG_FILE_PATH=./:${OSGDATA}:${OSGDATA}/Images: Or under windows (note
|
||||
paths seperated by semi-colon's) : SET
|
||||
OSG_FILE_PATH=./:${OSGDATA};${OSGDATA}/Images </p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,462 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>Introduction to the OpenSceneGraph</title>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg" border="0">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>
|
||||
<u>Introduction to the OpenSceneGraph</u></h2>
|
||||
<p>The OpenSceneGraph is an portable, high level graphics toolkit for
|
||||
the development of high peformance
|
||||
graphics applications such as flight simulators, games, virtual reality
|
||||
or scientific visualization. Providing an object orientated framework
|
||||
on top of OpenGL, it frees the developer
|
||||
from implementing and optimizing low level graphics calls, and provide
|
||||
many additional utilities for rapid development of graphics
|
||||
applications. </p>
|
||||
<p>
|
||||
The project was started as a hobby by Don Burns in 1998, as means of
|
||||
porting a hang gliding simulator written on top of the Performer scene
|
||||
graph running on IRIX to what was then a humble Linux PC. In 1999,
|
||||
Robert Osfield began helping out with the simulator development and
|
||||
ported the scene graph element to Windows. In september 1999 the source
|
||||
code was open sourced, and the openscenegraph.org website was born,
|
||||
with Robert taking over as project lead and Don remaining focused on
|
||||
the hang gliding simulator.
|
||||
</p>
|
||||
<p> In April 2001, in response to growing interest in the project
|
||||
around the world, Robert went fulltime on the project, setting up <a
|
||||
href="http://www.openscenegraph.com">OpenSceneGraph Professional
|
||||
Services</a> providing commericial support, consultancy services and
|
||||
training. At the end of 2001 Don also formed his own company <a
|
||||
href="http://www.andesengineering.com">Andes Computer Engineering</a>
|
||||
and participates in the development and support of OpenSceneGraph as
|
||||
well as complimentary projects like <a
|
||||
href="http://www.andesengineering.com/Producer">OpenProducer</a> and <a
|
||||
href="http://www.andesengineering.com/BlueMarbleViewer">BlueMarbleViewer</a>.
|
||||
</p>
|
||||
<h3><u>What is a Scene Graph?</u></h3>
|
||||
Its a tree! Quite simply one the best and most reusable data structures
|
||||
invented. Typically drawn schematically with the root at the top,
|
||||
leaves at the
|
||||
bottom. It all starts with a top-most root node which encompasses your
|
||||
whole
|
||||
virtual world, be it 2D or 3D. The world is then broken down into a
|
||||
hierarchy
|
||||
of nodes representing either spatial groupings of objects, settings of
|
||||
the
|
||||
position of objects, animations of objects, or definitions of logical
|
||||
relationships
|
||||
between objects such as those to manage the various states of a traffic
|
||||
light.
|
||||
The leaves of the graph represent the physical objects themselves, the
|
||||
drawable geometry and their material properties.
|
||||
<p></p>
|
||||
<p>A scene graph isn't a complete game or simulation engine, although
|
||||
it may
|
||||
be one of the main components of such an engine; it's primary focus is
|
||||
representation of your 3d worlds, and efficient rendering thereof.
|
||||
Physics models,
|
||||
collision detection and audio are left to other development libraries
|
||||
that
|
||||
a user will integrate with. The fact that scene graphs don't typically
|
||||
integrate all these features is actually a really good thing: it aids
|
||||
interoprability
|
||||
with clients' own applications and tools and allows it to serve many
|
||||
varied
|
||||
markets from games, visual simulation, virtual reality,
|
||||
scientific and commercial visualization, training through to modeling
|
||||
programs.
|
||||
</p>
|
||||
<h3>
|
||||
<u>Benefits that Scene Graphs provide</u></h3>
|
||||
The key reasons that many graphics developers uses scene graphs are <i>Performance,
|
||||
Productivity, Portability and Scalability:</i>
|
||||
<ul>
|
||||
<li><b><i>Performance</i></b></li>
|
||||
Scene graphs provide an excellent framework for
|
||||
maximizing graphics performance. A good scene graph employs two key
|
||||
techniques
|
||||
- culling of the objects that won't be seen on screen, and state
|
||||
sorting
|
||||
of properties such as textures and materials, so that all similar
|
||||
objects
|
||||
are drawn together. Without culling the CPU, buses and GPU will all
|
||||
become
|
||||
swamped by many times the amount of data than they actually require to
|
||||
represent your scenes accurately. The hierarchical structure of the
|
||||
scene
|
||||
graph makes this culling process very efficient, for instance a whole
|
||||
city can be culled
|
||||
with just a few operations! Without state sorting, the the buses and
|
||||
GPU
|
||||
will thrash between states, stalling the graphics pipeline and
|
||||
destroying graphics
|
||||
throughput. As GPU's get faster and faster, the cost of stalling the
|
||||
graphics pipeline
|
||||
is also going up, so scene graphs are becoming ever more important.
|
||||
<p></p>
|
||||
<li><b><i>Productivity</i></b></li>
|
||||
Scene graphs take away much of the hard work required
|
||||
to develop high performance graphics applications. The scene graph
|
||||
manages
|
||||
all the graphics for you, reducing what would be thousands of lines of
|
||||
OpenGL down to a few simple calls. Furthermore, one of most powerful
|
||||
concepts
|
||||
in Object Oriented programming is that of object composition, enshrined
|
||||
in the <i>Composite Design Pattern</i>, which fits the scene graph
|
||||
tree structure
|
||||
perfectly and makes it a highly flexible and reusable design - in real
|
||||
terms this means that it can be easily adapted to solve your problems.
|
||||
Scene graphs also often come additional utility libraries which range
|
||||
from
|
||||
helping users set up and manage graphics windows to importing of 3d
|
||||
models
|
||||
and images. All this together allows the user to achieve a great deal
|
||||
with
|
||||
very little coding. A dozen lines of code can be enough to load your
|
||||
data
|
||||
and create an interactive viewer!
|
||||
<p></p>
|
||||
<li><b><i>Portability</i></b></li>
|
||||
Scene graphs encapsulate much of the lower level
|
||||
tasks of rendering graphics and reading and writing data, reducing or
|
||||
even
|
||||
eradicating the platform specific coding that you require in your own
|
||||
application.
|
||||
If the underlying scene graph is portable then moving from platform to
|
||||
platform can be as simple as recompiling your source code.
|
||||
<p></p>
|
||||
<li><b><i>Scalability</i></b></li>
|
||||
Along with being able to dynamic manage the complexity
|
||||
of scenes automatically to account for differences in graphics
|
||||
performance
|
||||
across a range of machines, scene graphs also make it much easier to
|
||||
manage
|
||||
complex hardware configurations, such as clusters of graphics machines,
|
||||
or multiprocessor/multipipe systems such as SGI's Onyx. A good scene
|
||||
graph
|
||||
will allow the developer to concentrate on developing their own
|
||||
application
|
||||
while the rendering framework of the scene graph handles the different
|
||||
underlying hardware configurations.
|
||||
</ul>
|
||||
<h3>
|
||||
<u>The OpenSceneGraph - <i> a robust, high peformance Open Source
|
||||
scene graph</i></u></h3>
|
||||
With the OpenSceneGraph our goal is make the benefits of scene graph
|
||||
technology freely available to all, for both commericial and non
|
||||
commericial users. Whilst our scene graph
|
||||
is still in development, it has already gained a respect
|
||||
amongst the development community for its high performance, cleanness
|
||||
of
|
||||
design and portability. Written entirely in Standard C++ and OpenGL, it
|
||||
makes full use of the STL and Design Patterns, and leverages the open
|
||||
source
|
||||
development model to provide a development library that is legacy free
|
||||
and focused on the needs of end users. The OpenSceneGraph delivers on
|
||||
the four key benefits of scene graph technology outlined above with the
|
||||
following features:
|
||||
<ul>
|
||||
<li><b><i>Performance</i></b></li>
|
||||
Supports view frustum culling, occlusion culling, small feature
|
||||
culling,
|
||||
Level Of Detail (LOD) nodes, state sorting, vertex arrays and display
|
||||
lists as part of the core scene graph. These together make the
|
||||
OpenSceneGraph
|
||||
one of the highest performance scene graph available. User feedback is
|
||||
that
|
||||
performance matches or surpasses that of much more established scene
|
||||
graphs such as Performer, VTree, Vega Scene Graph and Java3D! The
|
||||
OpenSceneGraph also supports easy customization
|
||||
of the drawing process, which has allowed implementation of Continuous
|
||||
Level
|
||||
of Detail (CLOD) meshes on top the scene graph. These allow the
|
||||
visualization
|
||||
of massive terrain databases interactively, examples of this approach
|
||||
can
|
||||
be found at Vterrain.org and TerrainEngine.com, both of which integrate
|
||||
with the OpenSceneGraph.
|
||||
<p></p>
|
||||
<li><b><i>Productivity</i></b> </li>
|
||||
<p>The core scene graph provides encapsulate the majority of OpenGL
|
||||
functionality including latest extensions, provides rending
|
||||
optimizations
|
||||
such as culling and sorting, and a whole set of add on libraries which
|
||||
make
|
||||
it possible to develop high peformance graphics applications very
|
||||
rapidly. The application developer is freed to concentrate on content
|
||||
and how that content is controlled rather than low level coding. </p>
|
||||
<p>Combining lessons learned from established scene graphs like
|
||||
Performer
|
||||
and Open Inventor, with modern software engineering methods like Design
|
||||
Patterns, along with a great deal of feedback early on in the
|
||||
development cycle, it has been possible to design a library that is
|
||||
clean and extensible. This has made it easy for users to adopt to the
|
||||
OpenSceneGraph and to integrate it with their own applications. </p>
|
||||
<p>For reading and writing databases an the database library (osgDB)
|
||||
adds
|
||||
support for a wide
|
||||
variety of database formats via a extensible dynamic plugin mechansim -
|
||||
the distribution now includes 33
|
||||
seperate plugins for loading various 3D and Image data formats. 3D
|
||||
Database loaders include OpenFlight (.flt), TerraPage (.txp) including
|
||||
multi-threading support, LightWave (.lwo), Alias Wavefront (.obj),
|
||||
Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb),
|
||||
Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0
|
||||
(.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the
|
||||
native .osg ASCII format.
|
||||
Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds
|
||||
(include compressed mip mapped imagery), .tga and qucktime (under OSX).
|
||||
A whole set of high quality, anti-aliased fonts can also be loaded via
|
||||
the freetype plugin. </p>
|
||||
<p>The scene graph also has a set of <i>Node Kits</i> which are
|
||||
seperate
|
||||
libraries,
|
||||
that can be compiled in with your applications or loaded in at runtime,
|
||||
which add support for particle systems (osgParticle),
|
||||
high quality anti-aliased text (osgText) and navigational light points
|
||||
(osgSim). </p>
|
||||
<p>The community has also developed a number of additional <i>Node
|
||||
Kits</i>
|
||||
such as <a href="http://osgnv.sourceforge.net/">osgNV</a> (which
|
||||
includes support for NVidia's vertex, fragment, combiner etc extension
|
||||
and NVidia's Cg shader language.), <a
|
||||
href="http://www.terrainengine.com">Demeter</a> (CLOD terrain +
|
||||
integration with OSG). <a href="http://osgcal.sourceforge.net">osgCal</a>
|
||||
(which integrates <a href="http://cal3d.sourceforge.net//">Cal3D</a>
|
||||
and the OSG), <a href="http://www.vrlab.umu.se/research/osgvortex">osgVortex</a>
|
||||
(which integrates the <a href="http://www.cm-labs.com/">CM-Labs Vortex</a>
|
||||
physics enginer with OSG)
|
||||
and a whole set libraries that integrating the leading Windowing API's
|
||||
Links can be found in the bazaar sections on the <a
|
||||
href="http://www.openscenegraph.org/download/">download</a> page of
|
||||
OpenSceneGraph webiste. </p>
|
||||
<p>The project has also been integrated with <a
|
||||
href="http://www.vrjuggler.org/">VR Juggler</a> and <a
|
||||
href="http://http://vess.ist.ucf.edu/">Vess</a> virtual realilty the
|
||||
frameworks, with others in developments. </p>
|
||||
<li><b><i>Portability</i></b></li>
|
||||
The core scene graph has also been designed to
|
||||
have minimal dependency on any specific platform, requiring little more
|
||||
than
|
||||
Standard C++ and OpenGL. This has allowed the scene graph to be rapidly
|
||||
ported to a wide range of platforms - originally developed on IRIX,
|
||||
then
|
||||
ported to Linux, then to Windows, then FreeBSD, Mac OSX, Solaris, HP-UX
|
||||
and we even a report of successful porting to PlayStation2! <br>
|
||||
The core scene graph library being completely windowing system
|
||||
independent makes it easy for users to add their own window-specific
|
||||
libraries and applications on top.
|
||||
In the distribution there is already the osgProducer library which
|
||||
integrates with <a href="http://www.andesengineering.com/Producer/">OpenProducer</a>,
|
||||
and in the Bazaar
|
||||
found at openscenegrph.org/download/ one can find examples of
|
||||
applications
|
||||
written on top of GLUT, Qt, MFC, WxWindows and SDL. Users have also
|
||||
integrated it
|
||||
with Motif, and X.
|
||||
<p></p>
|
||||
<li><b><i>Scalability</i></b></li>
|
||||
The scene graph will not only run on portables all
|
||||
the way up to Onyx Infinite Reality Monsters, but also supports the
|
||||
multiple
|
||||
graphics subsystems found on machines like a mulitpipe Onyx. This is
|
||||
possible because the core scene graph supports multiple graphics
|
||||
contexts
|
||||
for both OpenGL Display Lists and texture objects, and the cull and
|
||||
draw
|
||||
traversals have been designed to cache rendering data locally and use
|
||||
the
|
||||
scene graph almost entirely as a read-only operation. This allows
|
||||
multiple
|
||||
cull-draw pairs to run on multiple CPU's which are bound to multiple
|
||||
graphics
|
||||
subsystems. Support for multiple graphic context and multi-threading is
|
||||
all
|
||||
available out of the box via osgProducer - all the examples in the
|
||||
distribution
|
||||
can run multi-pipe just by use a simple configuation file.
|
||||
</ul>
|
||||
All the source to the OSG is published under the Open Scene Graph
|
||||
Public License
|
||||
(a relaxed version on the LGPL) which allows both open source and
|
||||
closed source projects to use,
|
||||
modify and distribute it freely as long its usage complies with the
|
||||
OSGPL.
|
||||
The project has been developed over the last four years, initiated by
|
||||
Don
|
||||
Burns, and then taken over by Robert Osfield who continues to lead the
|
||||
project
|
||||
today. There are many other contributors to the library, for a full
|
||||
list
|
||||
check out the AUTHORS file. Both Robert and Don now work on the
|
||||
OpenSceneGraph
|
||||
in a professional capacity providing consultancy and bespoke
|
||||
development
|
||||
on top the library, and are also collaborating on the book. Work on the
|
||||
core scene graph and support of public mailing list remains unpaid as
|
||||
are
|
||||
the contributions of the rest of the community, but this hasn't
|
||||
impacted
|
||||
the quality of the source or support which once you get stuck in you
|
||||
grow
|
||||
to appreciate.
|
||||
<p>The project is currently in beta, which means the main core features
|
||||
are now in
|
||||
place, with a 1.0 release in second half of 2004. Despite the beta
|
||||
development status,
|
||||
the project has already earned the reputation as the leading open
|
||||
source scene
|
||||
graph, and is establishing itself as a viable alternative to the
|
||||
commercial
|
||||
scene graphs. Numerous companies, university researchers and graphics
|
||||
enthusiasts
|
||||
have already adopted the OpenSceneGraph for their projects, all over
|
||||
the world. Examples of the wide variety of applications already
|
||||
developed ontop of the OpenSceneGraph include <a
|
||||
href="http://http://www.andesengineering.com/BlueMarbleViewer/">Blue
|
||||
Marble Viewer</a>, <a href="http://www.vterrain.org"> Virtual Terrain
|
||||
Project</a>, <a href="http://http://csp.sourceforge.net/">Combat
|
||||
Simulator Project</a>, <a href="http://osgedit.sourceforge.net/">OSG-Edit</a>.
|
||||
This is just a snippet of the projects that use the project, more
|
||||
examples can be found on the screenshot pages and bazaar on the
|
||||
website.
|
||||
</p>
|
||||
<h3>
|
||||
<u>Getting started</u></h3>
|
||||
The first thing is to select the distribution which suits you, there
|
||||
are
|
||||
binary, development and source code distributions, these can be loaded
|
||||
from the
|
||||
<a href="http://openscenegraph.sf.net/downloads">http://openscenegraph.sf.net/downloads</a>
|
||||
page. The latest developments area available as via a nightly tarball
|
||||
or
|
||||
via cvs.
|
||||
<p>The binary distribution contains just the libraries (.dll's /.so's)
|
||||
and example executables. This is suitable for using the OpenSceneGraph
|
||||
with
|
||||
an application that has already been compiled but depends at runtime on
|
||||
the OpenSceneGraph.
|
||||
</p>
|
||||
<p>The development distribution contains the libraries (.dll's /.so's),
|
||||
example executables, include files, and source to the examples. This is
|
||||
suitable
|
||||
for developers using the OpenSceneGraph.
|
||||
</p>
|
||||
<p>The source distribution contains all the source and include files
|
||||
required to build the OpenSceneGraph from scratch, and is ideal if you
|
||||
want to learn more about how the scene graph works, how to extend it,
|
||||
and
|
||||
to track down and fix any problems that you come across.
|
||||
</p>
|
||||
<p>If you are using a source distribution then read the <a
|
||||
href="install.html">installation</a>
|
||||
instructions for how to get the OpenSceneGraph compiling and installed
|
||||
on your system. You may also need to download libraries that parts of
|
||||
the
|
||||
OpenSceneGraph depend upon, such as Producer. Check the <a
|
||||
href="dependencies.html">dependencies</a>
|
||||
list for further details.
|
||||
</p>
|
||||
<p>For full instructions of how to run the examples read the <a
|
||||
href="examples.html">examples</a>
|
||||
page.
|
||||
</p>
|
||||
<h3>
|
||||
<u>Learning how to use the OpenSceneGraph</u></h3>
|
||||
<p>The main collections of resources for learning how to use the
|
||||
OpenSceneGraph can be found on openscenegraph.org documentaiton page,
|
||||
please check this out regular for new entries.<br>
|
||||
</p>
|
||||
<p>The OpenSceneGraph distribution comes with a reference guide for
|
||||
each of
|
||||
the component libraries - osg, osgDB, osgUtil, osgText, osgSim,
|
||||
osgParticle and osgProducer, a set
|
||||
of 42 examples - the source of which can be found in examples/
|
||||
directory in the distribution. For questions
|
||||
or help which can't be easily be answered by the reference guide and
|
||||
examples
|
||||
source, one should join the mailing list (details below).
|
||||
</p>
|
||||
<p>Two sets of online tutorial been written by members of the
|
||||
OpenSceneGraph community:<br>
|
||||
Jason McVeigh's <a
|
||||
href="http://www.tersesolutions.net/osgt/">OpenSceneGraph Tutorials</a><br>
|
||||
Joseph Sullivan's <a
|
||||
href="http://www.nps.navy.mil/cs/sullivan/osgTutorials/index.html">OpenSceneGraph
|
||||
Tutorials</a><br>
|
||||
<br>
|
||||
A programming guide will be available in form of a OpenSceneGraph
|
||||
book
|
||||
which is being written by Don Burns and Robert Osfield, parts of it
|
||||
will
|
||||
be available online.
|
||||
</p>
|
||||
<p>Although not directly related to the OpenSceneGraph, once can learn
|
||||
about scene graph technology from such sources as the <a
|
||||
href="http://www.sgi.com/software/inventor/manuals.html">Open
|
||||
Inventor Mentor</a>, and <a
|
||||
href="http://www.cineca.it/manuali/Performer/ProgGuide24/html">Performer
|
||||
Programming Guides</a>. The latter is the closer in design to
|
||||
the OpenSceneGraph, although the Performer manuals are in C, alas. Also
|
||||
of use
|
||||
as a background to some of the techniques used is a SIGGRAPH <a
|
||||
href="http://www.opengl.org/developers/code/sig99/advanced99/course_slides/vissim/index.htm">Vis-Sim
|
||||
course</a>.
|
||||
</p>
|
||||
<p>The OpenSceneGraph uses OpenGL and does so with a deliberately thin
|
||||
layer,
|
||||
making it easy to control the underlying OpenGL and to extend it with
|
||||
OpenGL
|
||||
extensions. The close tie with OpenGL is also reflected in the naming
|
||||
of
|
||||
many of the OpenGL state related classes, and the parameters that they
|
||||
encapsulate, which means that knowledge of OpenGL itself will go a long
|
||||
way
|
||||
to understanding how to get the best out of the OpenSceneGraph. To this
|
||||
end it is worth obtaining a copy of the OpenGL programming guide - <a
|
||||
href="http://fly.cc.fer.hr/%7Eunreal/theredbook/">`Red
|
||||
Book`</a> and OpenGL reference guide 'Blue Book'. The main <a
|
||||
href="http://www.opengl.org">OpenGL
|
||||
website</a> is also a good source of links and further information.
|
||||
</p>
|
||||
<h3>
|
||||
<u>Support and discussion - the <i>osg-user</i> mailing list</u></h3>
|
||||
For scene graph related questions, bug reports, bug fixes, and general
|
||||
design and development discussion one should join the <a
|
||||
href="http://dburns.dhs.org/mailman/listinfo/osg-user"><span
|
||||
style="text-decoration: underline;">osg-user</span></a>
|
||||
mailing list, and check the the mailing list <a
|
||||
href="http://osgcvs.no-ip.com/osgarchiver/">archives</a>.
|
||||
<p>Professional support is also available in the form of confidential
|
||||
online,
|
||||
phone and onsite support and consultancy, for details contact Robert
|
||||
Osfield
|
||||
at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
373
doc/osgdem.html
@@ -1,373 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>examples</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#990066"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>
|
||||
<a name="Using_osgdem"></a><u>Using osgdem to generate geospatial
|
||||
terrain databases</u></h2>
|
||||
<ol>
|
||||
<li><a href="#Quick_step_by_step_guide:">Quick step by step guide</a></li>
|
||||
<li><a href="#osgdem_options">osgdem options</a></li>
|
||||
</ol>
|
||||
<hr style="width: 100%; height: 2px;">
|
||||
<h3><a name="Quick_step_by_step_guide:"></a>Quick step by step guide:</h3>
|
||||
What follows are the steps required to get osgTerrain/osgdem compiling and
|
||||
an example of how to use it to process imagery and DEM's to generate a
|
||||
paged databases.<br>
|
||||
<br>
|
||||
1) Download, compile & install GDAL. <br>
|
||||
<br>
|
||||
2) Get the latest OSG in CVS.<br>
|
||||
<br>
|
||||
3) For UNIX 'make' users, make a copy of Make/dependencies and change the
|
||||
GDAL_INSTALL entry to:<br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"><span style="font-weight: bold;">set
|
||||
GDAL_INSTALL = true </span><br>
|
||||
<span style="font-weight: bold;"></span></div>
|
||||
<span style="font-weight: bold;"><br>
|
||||
</span>Then tell the build to use your custom
|
||||
dependencies by setting the environmental variable OSG_DEPENDENCIES to
|
||||
the absolute path to your file i.e.:<br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"><span style="font-weight: bold;">export
|
||||
OSG_DEPENDENCIES=/home/billgates/my_osg_dependencies</span><br>
|
||||
</div>
|
||||
<br>
|
||||
4) Rebuild the OSG & install (if you haven't already).<br>
|
||||
<br>
|
||||
5) Oh, make sure you have a couple of GB of spare disk space, because
|
||||
you're going to need it :-) <br>
|
||||
<br>
|
||||
6) Download some data, for this example I'm using the Puget Sound data
|
||||
at: <br>
|
||||
<br>
|
||||
<a
|
||||
href="http://www.cc.gatech.edu/projects/large_models/ps.html">http://www.cc.gatech.edu/projects/large_models/ps.html
|
||||
</a><br>
|
||||
<br>
|
||||
Download Elevation Map:
|
||||
16385 × 16385 PNG: 188MB <br>
|
||||
Download Texture Map:
|
||||
16384 × 16384 PNG: 268MB <br>
|
||||
<br>
|
||||
7) To avoid aliasing artifacts when accessing data I use <a
|
||||
href="http://www.remotesensing.org/gdal/gdal_utilities.html">GDAL
|
||||
utilitiy
|
||||
programs</a> to generate overviews (basically mip maps stored in the
|
||||
.tiff format)
|
||||
via: <br>
|
||||
<br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"><span style="font-weight: bold;">gdal_translate
|
||||
ps_height_16k.png
|
||||
ps_height_16k.tif </span><br>
|
||||
<span style="font-weight: bold;">gdaladdo -r average ps_height_16k.tif
|
||||
2 4 8 16 32 </span><br style="font-weight: bold;">
|
||||
<span style="font-weight: bold;"> </span><br
|
||||
style="font-weight: bold;">
|
||||
<span style="font-weight: bold;">gdal_translate ps_texture_16k.png
|
||||
ps_texture_16k.tif </span><br style="font-weight: bold;">
|
||||
g<span style="font-weight: bold;">daladdo -r average ps_texture_16k.tif
|
||||
2 4 8 16 32 </span><br style="font-weight: bold;">
|
||||
</div>
|
||||
<span style="font-weight: bold;"> </span><br>
|
||||
<br>
|
||||
8) Now its time to run the osgdem example to generate your PagedLOD
|
||||
database, the more levels you generate the longer it will take
|
||||
(exponentially so). 'osgdem' is just a front end to osgTerrain::DataSet
|
||||
where all the hard work happens. Here's what to run : <br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"><span style="font-weight: bold;">osgdem
|
||||
--xx 10 --yy 10 -t ../ps_texture.tif \</span><br
|
||||
style="font-weight: bold;">
|
||||
<span style="font-weight: bold;">
|
||||
|
||||
--xx 10 --yy 10 -d ../ps_height.tif \</span><br
|
||||
style="font-weight: bold;">
|
||||
<span style="font-weight: bold;">
|
||||
|
||||
-l 8 \</span><br style="font-weight: bold;">
|
||||
<span style="font-weight: bold;">
|
||||
-v 0.1 \</span><br style="font-weight: bold;">
|
||||
<span style="font-weight: bold;">
|
||||
-o puget.ive</span><br>
|
||||
</div>
|
||||
<br>
|
||||
Then go away for lunch, afternoon and tea, as generating this much data
|
||||
takes a while... If you don't wish to wait for the full database then
|
||||
reduce the number of levels it generates by setting the -l option to a
|
||||
lower value such as 3.<br>
|
||||
<br>
|
||||
The command line options used above are: <br>
|
||||
<div style="margin-left: 40px;"> <br>
|
||||
The first part the --xx and --yy is specifying the size of the pixels
|
||||
in meters, since these png/tif don't have any geospatial data of their
|
||||
own, if you have geospatialised files then you won't need this.<br>
|
||||
<br>
|
||||
The second part -t <filename> is the option for specificing the
|
||||
texture maps to use, you can use as many times as you wish,
|
||||
osgTerrain::DataSet will moziac them into a single database. <br>
|
||||
<br>
|
||||
The third part -d is the option for specifying the digital elevation
|
||||
maps to use, as with the textures you can use as many as you like. <br>
|
||||
<br>
|
||||
The -l option specificies the maximum number of levels to generate. If
|
||||
you use a large number then the database generation will stop once the
|
||||
max resolution of your source data is matched by the resulting database.
|
||||
The database generation will decend further where there is high res
|
||||
source
|
||||
data, decend less where there is lower res data. <br>
|
||||
<br>
|
||||
The -v option specifies the scaling factor which the height is
|
||||
multiplied by.<br>
|
||||
<br>
|
||||
And finally the -o <filename> is the output format to generate the
|
||||
databases in. This will be the name of the topmost file in the one you
|
||||
should load. It can be a .ive or a .osg. The .ive is faster and has
|
||||
embedded files. <br>
|
||||
</div>
|
||||
<br>
|
||||
9) Time to play. Simply load the database in your app (make sure it
|
||||
supports the osgDB::DatabasePager - see osgsimplepager
|
||||
example for details). The standard osgviewer works just fine so,
|
||||
here goes: <br>
|
||||
<br>
|
||||
<span style="font-weight: bold;">osgviewer output.ive </span><br>
|
||||
<br>
|
||||
<br>
|
||||
10) You don't actually have to wait for osgdem to complete before you
|
||||
can browse the database, since osgdem generates
|
||||
the topmost tiles first. Its not totally robust since osgviewer can end
|
||||
up
|
||||
loading tiles that are still being written by osgdem, but it doesn't
|
||||
crash
|
||||
here under Linux, so you might be lucky too. <br>
|
||||
<br>
|
||||
11) If your imagery and DEMs have geospatial coords associated with
|
||||
them then the -xx, --yy and -v options will not be required, making
|
||||
it much simplier to specify - you just need to specifiy options such as
|
||||
<span style="font-weight: bold;">-t imge.tif</span> and -d terran.dt0
|
||||
without any need to set the coordinate system.<br>
|
||||
<br>
|
||||
12) osgdem can automatically handle mosaicing of sets of files. These
|
||||
can be specified via a sequence of <span style="font-weight: bold;">-t
|
||||
<filename></span> and <span style="font-weight: bold;">-d
|
||||
<filename></span> pairs on the commandline, or via <span
|
||||
style="font-weight: bold;">-t <directoryname></span> and <span
|
||||
style="font-weight: bold;">-d <directoryname>.</span><br>
|
||||
<br>
|
||||
<hr style="width: 100%; height: 2px;">
|
||||
<h3><a name="osgdem_options"></a>osgdem options</h3>
|
||||
There are of osgdem options to use, to list the full ranges of options
|
||||
do:<br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"><span style="font-weight: bold;">osgdem
|
||||
--help</span><br>
|
||||
</div>
|
||||
<br>
|
||||
And you should see:<br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"><br>
|
||||
<span style="font-family: monospace; font-weight: bold;">osgdem --help</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">Usage: osgdem [options] filename
|
||||
...</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">Options:</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--HEIGHT_FIELD
|
||||
Create a height field database</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--LOD
|
||||
Create a LOD'd database</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--POLYGONAL
|
||||
Create a height field database</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--PagedLOD
|
||||
Create a PagedLOD'd database</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--RGB-16
|
||||
Use 16bit RGB destination imagery</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--RGB-24
|
||||
Use 24bit RGB destination imagery</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--comment
|
||||
Added a comment/description string to</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
the top most node in the dataset</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--compressed
|
||||
Use OpenGL compression on destination</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
imagery</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> --cs <coordinates
|
||||
system string> Set the
|
||||
coordinates system of source</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
imagery, DEM or destination database.</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
The string may be any of the usual</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
GDAL/OGR forms, complete WKT, PROJ.4,</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
EPS</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--max-anisotropy
|
||||
Max anisotropy level to use when</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
texturing, defaults to 1.0.</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--max-visible-distance-of-top-level Set the
|
||||
maximum visible distance that</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
the top most tile can be viewed at</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--mip-mapping-hardware
|
||||
Use mip mapped textures, and generate</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
the mipmaps in hardware when</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
available.</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--mip-mapping-imagery
|
||||
Use mip mapped textures, and generate</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
the mipmaps in imagery.</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--no-mip-mapping
|
||||
Disable mip mapping of textures</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--radius-to-max-visible-distance-ratio Set the maximum visible
|
||||
distance ratio</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
for all tiles apart from the top most</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
tile. The maximum visuble distance is</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
computed from the ratio * tile radius.</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> --skirt-ratio
|
||||
<float>
|
||||
Set the ratio of skirt height to tile</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
size</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--tile-image-size
|
||||
Set the tile maximum image size</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
--tile-terrain-size
|
||||
Set the tile maximum terrain size</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> --wkt <WKT
|
||||
string>
|
||||
Set the coordinates system of source</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
imagery, DEM or destination database</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
in WellKownText form.</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> --wkt-file <WKT
|
||||
file>
|
||||
Set the coordinates system of source</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
imagery, DEM or destination database</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
by as file containing WellKownText</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
definition.</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -d
|
||||
<filename>
|
||||
Specify the digital elevation map</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
input file to process</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -e <x> <y>
|
||||
<w>
|
||||
<h>
|
||||
Extents of the model to generate</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -h or
|
||||
--help
|
||||
Display this information</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -l
|
||||
<numOfLevels>
|
||||
Specify the number of PagedLOD levels</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
to generate</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -m
|
||||
<filename>
|
||||
Specify the 3D database model input</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
file to process</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -o
|
||||
<outputfile>
|
||||
Specify the output master file to</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
generate</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;"> -t
|
||||
<filename>
|
||||
Specify the texture map input file to</span><br
|
||||
style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
process</span><br style="font-family: monospace;">
|
||||
<span style="font-family: monospace;">
|
||||
-v
|
||||
Set the vertical multiplier</span><br style="font-family: monospace;">
|
||||
<br style="font-family: monospace;">
|
||||
<br>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,290 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.75C-SGI [en] (X11; I; IRIX64 6.5 IP27) [Netscape]">
|
||||
<title>Scene graph viewer</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
|
||||
|
||||
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a> </td>
|
||||
<td><a href="introduction.html">Introduction</a> </td>
|
||||
<td><a href="contents.html">Contents</a> </td>
|
||||
<td><a href="install.html">Install</a> </td>
|
||||
<td><a href="dependencies.html">Dependencies</a> </td>
|
||||
<td><a href="examples.html">Demos</a> </td>
|
||||
<td><a href="data.html">Data</a> </td>
|
||||
<td><a href="osgviewer.html">Viewer</a> </td>
|
||||
<td><a href="stereo.html">Stereo</a> </td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a> </td>
|
||||
<td><a href="documentation.html">Reference Guides</a> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2><u>osgProducer::Viewer / Scene Graph Viewer (osgviewer) keyboard bindings:</u></h2>
|
||||
|
||||
<p><br>
|
||||
<table BORDER COLS=2 WIDTH="100%" NOSAVE >
|
||||
<tr NOSAVE>
|
||||
<td WIDTH="10%" NOSAVE><b><u>Key</u></b></td>
|
||||
|
||||
<td><u>Binding</u></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><font size=+2>'1'</font></center>
|
||||
</td>
|
||||
|
||||
<td>Select the trackball camera manipulator.
|
||||
<blockquote>Left mouse button - rotate,
|
||||
<br>Middle (or Left & Right) mouse button - pan,
|
||||
<br>Right mouse button - zoom.</blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><font size=+2>'2'</font></center>
|
||||
</td>
|
||||
|
||||
<td>Select the flight camera manipulator.
|
||||
<blockquote>Left mouse button - speed up,
|
||||
<br>Middle (or Left & Right) mouse button - stop,
|
||||
<br>Right mouse button - slow down, reverse.
|
||||
<br>Move mouse left to roll left, right to roll right.
|
||||
<br>Move mouse back (down) to pitch nose up, forward to pitch down.
|
||||
<br>In mode Q, the default, selected by pressing 'q'
|
||||
<blockquote>The flight path is yawed automatically into the turn to produce
|
||||
a similar effect as flying an aircaft.</blockquote>
|
||||
In mode A, selected by pressing 'a'
|
||||
<blockquote>The flight path is not yawed automatically into the turn, producing
|
||||
a similar effect as space/marine flight.</blockquote>
|
||||
</blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><font size=+2>'3'</font></center>
|
||||
</td>
|
||||
|
||||
<td>Select the drive camera manipulator.
|
||||
<br>
|
||||
<blockquote>In mode Q, the default, selected by pressing 'q'</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote>Move mouse left to turn left, right to turn right.
|
||||
<br>Move mouse back (down) to reverse, forward to drive forward.</blockquote>
|
||||
In mode A, selected by pressing 'a'
|
||||
<blockquote>Move mouse left to turn left, right to turn right.
|
||||
<br>Left mouse button - speed up,
|
||||
<br>Middle (or Left & Right) mouse button - stop,
|
||||
<br>Right mouse button - slow down, reverse.</blockquote>
|
||||
</blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'+'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Half the frame delay which speeds up the frame rate on Linux and
|
||||
<br>Windows.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'-'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Double the frame delay and therefore reduce the frame rate on Linux
|
||||
and Windows.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'/'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Divide the Level-Of-Detail (LOD) bias by 1.5, to encourage the selection
|
||||
of more complex LOD children.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'*'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Multiple the Level-of-Detail (LOD) bias by 1.5, to encourage the
|
||||
<br>selection of less complex LOD children.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table BORDER=3 CELLSPACING=3 CELLPADDING=3 NOSAVE >
|
||||
<tr NOSAVE>
|
||||
<td WIDTH="15%" NOSAVE>
|
||||
<center><b><font size=+2>'c' </font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle Small Feature Culling on or off.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'C'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle View Frustum Culling on or off.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'d'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle use of OpenGL's display lists.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'b'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle OpenGL's backface culling.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'t'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle OpenGL texturing on or off.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'T'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle OpenGL two-sided lighting on or off.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'l'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle OpenGL lighting on or off.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'L'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle SceneView lighting mode between HEADLIGHT, SKY_LIGHT and NO_SCENEVIEW_LIGHT.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'s'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle OpenGL shade model between flat and smooth shading.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center>'<b><font size=+2>w'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Toggle OpenGL polygon mode between solid, wireframe and points modes.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'i'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Calculate and report the intersections with the scene under thecurrent
|
||||
mouse x and mouse y position.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'r'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Calculate and report the intersections with the scene under the currentmouse
|
||||
x and mouse y position and delete the nearest interesected geoset.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'p'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Print frame rate statistics on each frame.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'o'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Output the loaded scene to 'saved_model.osg'.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'O'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Snap a screen shot image and write it out 'screenshot.bmp'.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'?'/'h'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Print out osgviewer's keyboard bindings.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>'f'</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<center>Toggle between fullscreen and the previous window size. Note Producer
|
||||
fullscreen works properly on Windows and Irix, but on Linux it just maximizes
|
||||
the window and leaves the window's borders.</center>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>Space</font></b></center>
|
||||
</td>
|
||||
|
||||
<td>Reset scene to the default view.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center><b><font size=+2>Esc </font></b></center>
|
||||
</td>
|
||||
|
||||
<td> Exit osgviewer.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,77 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>Plans for future developments</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#990066"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>
|
||||
<u>Plans for future developments</u></h2>
|
||||
Now we have reached the beta phase (0.9.x) of OpenScenegGraph project,
|
||||
and are now working towards the full 1.0 release, with a likely release
|
||||
date in second half of 2004.
|
||||
<h3>Future work include:</h3>
|
||||
<ul>
|
||||
<li>
|
||||
StateSet composite structure for managing multi-pass effects and
|
||||
alternate rendering implemations. This will allow one to manage the use
|
||||
of extensions and provide effecient fallback rendering paths.</li>
|
||||
<li>
|
||||
Clean up the API for managing multi-stage and multi-pass rendering
|
||||
within
|
||||
the scene graph.</li>
|
||||
<li>
|
||||
Support for clustering in Open Producer and osgProducer.</li>
|
||||
<li>
|
||||
Enhance osgDB and plugins to allow them to be used with alternate input
|
||||
streams. Add support for native binary file format for rapid loading
|
||||
and saving of scene graphs.</li>
|
||||
<li>Introduce a new library osgEnvironment, which adds support for
|
||||
creating
|
||||
shapes and environmental effects such as stars, planets, cloud layers,
|
||||
oceans and
|
||||
ground planes.</li>
|
||||
<li>
|
||||
Integrate unit tests for all classes, using the osgUtx Unit Test
|
||||
Framework.</li>
|
||||
</ul>
|
||||
<h3>
|
||||
Books, tutorials and demonstrations</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Don Burns and Robert Osfield to write the OpenSceneGraph book!</li>
|
||||
<li>
|
||||
Development of tutorials to published as part of the distribution and
|
||||
on
|
||||
the bazaar</li>
|
||||
<li>
|
||||
Development of technology demonstrations for shows, presentations and
|
||||
training.</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="mailto:don@andesengineering.com"></a>
|
||||
</body>
|
||||
</html>
|
||||
229
doc/stereo.html
@@ -1,229 +0,0 @@
|
||||
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR"
|
||||
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>Native stereo support</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b"
|
||||
alink="#ff0000">
|
||||
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="index.html">Index</a></td>
|
||||
<td><a href="introduction.html">Introduction</a></td>
|
||||
<td><a href="contents.html">Contents</a></td>
|
||||
<td><a href="install.html">Install</a></td>
|
||||
<td><a href="dependencies.html">Dependencies</a></td>
|
||||
<td><a href="examples.html">examples</a></td>
|
||||
<td><a href="data.html">Data</a></td>
|
||||
<td><a href="osgviewer.html">Viewer</a></td>
|
||||
<td><a href="stereo.html">Stereo</a></td>
|
||||
<td><a href="osgdem.html">osgdem</a></td>
|
||||
<td><a href="plan.html">Plan</a></td>
|
||||
<td><a href="documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2> <u>Native Support for Stereo</u></h2>
|
||||
The OSG has support for anaglyphic stereo (i.e. red/green or red/cyan
|
||||
glasses), quad buffered stereo (i.e. active stereo using shutter
|
||||
glasses, or passive stereo using polarized projectors & glasses)
|
||||
and horizontal and vertical split window stereo implementations. Almost
|
||||
all OSG applications have the potential for stereo support simply by
|
||||
setting the relevant environmental variables, or via command line
|
||||
arguments. Little or no code changes will be required, the support is
|
||||
handled transparently inside osgUtil::SceneView's handling of
|
||||
rendering. It is a simple as: <br>
|
||||
<b> osgviewer --stereo cow.osg</b>
|
||||
<p>If the user is planning to use head tracked stereo, or a cave then
|
||||
it is currently recommend to set it up via a VR toolkit such as
|
||||
VRjuggler, in this case refer to the VR toolkits handling of stereo,
|
||||
and keep all the OSG's stereo specific environment variables (below)
|
||||
set to OFF, or set the values to off within own your own applications. <br>
|
||||
</p>
|
||||
<hr>
|
||||
<h3> The environmental variables of interest:</h3>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><b>OSG_STEREO</b></td>
|
||||
<td><b>ON</b></td>
|
||||
<td>Turn stereo on </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</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><br>
|
||||
</td>
|
||||
<td><b>QUAD_BUFFER</b></td>
|
||||
<td>Use quad buffered stereo when in stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</td>
|
||||
<td><b>HORIZONTAL_SPLIT</b></td>
|
||||
<td>Use horizontal split stereo mode when in stereo </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</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_SEPARATION</b></td>
|
||||
<td><b>0.06</b></td>
|
||||
<td>Set the eye separation - interoccular distance (default
|
||||
shown.) </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>OSG_SPLIT_STEREO_HORIZONTAL_SEPARATION</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). </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</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_SEPARATION</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). </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</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>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr>
|
||||
<h3> Command line arguments can be used to override these settings:</h3>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><b>-stereo</b></td>
|
||||
<td><br>
|
||||
</td>
|
||||
<td>Switch on stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>-stereo</b></td>
|
||||
<td><b>ON</b></td>
|
||||
<td>Switch on stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</td>
|
||||
<td><b>OFF</b></td>
|
||||
<td>Switch off stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</td>
|
||||
<td><b>ANAGLYPHIC</b></td>
|
||||
<td>Switch on ANAGLYPHIC stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</td>
|
||||
<td><b>QUAD_BUFFER</b></td>
|
||||
<td>Switch on QUAD_BUFFER stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</td>
|
||||
<td><b>VERTICAL_SPLIT</b></td>
|
||||
<td>Switch on VERTICAL_SPLIT stereo. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>
|
||||
</td>
|
||||
<td><b>HORIZONTAL_SPLIT</b></td>
|
||||
<td>Switch on VERTICAL_SPLIT stereo. </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr>
|
||||
<h3> Examples:</h3>
|
||||
To invoke stereo from the comandline: <br>
|
||||
<b> osgviewer -stereo cow.osg</b>
|
||||
<p>To invoke quad buffered stereo from the commandline: <br>
|
||||
<b> osgviewer -stereo QUAD_BUFFER cow.osg</b> </p>
|
||||
<p>To force all apps to start up in quad buffered stereo (if system
|
||||
supports it) <br>
|
||||
<b> export OSG_STEREO=ON</b> <br>
|
||||
<b> export OSG_STEREO_MODE=QUAD_BUFFER</b> <br>
|
||||
<b> osgviewer cow.osg</b> </p>
|
||||
<p>To set quad buffered stereo to the default, but use the commandline
|
||||
to switch stereo on: <br>
|
||||
<b> export OSG_STEREO=OFF</b> <br>
|
||||
<b> export OSG_STEREO_MODE=QUAD_BUFFER</b> <br>
|
||||
<b> osgviewer -stereo cow.osg</b> </p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h3> Size matters:</h3>
|
||||
For appropriate depth perception the stereo code creates separate left
|
||||
and eye views, both the frustum and modelview are shifted to account for
|
||||
the separate eye views. To achieve the right amount of adjustment
|
||||
the OSG requires the users eye separation, the distance from the eyes to
|
||||
the screen and the height of the screen. The OSG will use the
|
||||
defaults of 0.05m,0.5m and 0.26m respectively which are assumed to be
|
||||
reasonable defaults for most users workstation configurations, note the
|
||||
OSG_SCREEN_HEIGHT is the image height rather than total size of your
|
||||
monitor/display surface. For the best stereo effects please
|
||||
measure these values and set them up via the environmental
|
||||
variables. Once set the views you get should give improved depth
|
||||
perception. A good way of measuring how well you are configured
|
||||
for your display is to fly away from objects (using the
|
||||
FlightManipulator for instance, but not the TrackballManipulator, see
|
||||
below) so that they go of toward infinity. As they move away the offset
|
||||
between the two images should tend towards your eye separation, if you
|
||||
achieve this then the object will be perceived as at infinity. <br>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
116
index.html
@@ -1,116 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
|
||||
<title>Documentionn Index</title>
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
|
||||
<img SRC="doc/images/OpenSceneGraphBanner_Distribution.jpg">
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="doc/index.html">Index</a></td>
|
||||
|
||||
<td><a href="doc/introduction.html">Introduction</a></td>
|
||||
|
||||
<td><a href="doc/contents.html">Contents</a></td>
|
||||
|
||||
<td><a href="doc/install.html">Install</a></td>
|
||||
|
||||
<td><a href="doc/dependencies.html">Dependencies</a></td>
|
||||
|
||||
<td><a href="doc/examples.html">Examples</a></td>
|
||||
|
||||
<td><a href="doc/data.html">Data</a></td>
|
||||
|
||||
<td><a href="doc/osgviewer.html">Viewer</a></td>
|
||||
|
||||
<td><a href="doc/stereo.html">Stereo</a></td>
|
||||
|
||||
<td><a href="doc/osgdem.html">osgdem</a></td>
|
||||
|
||||
<td><a href="doc/plan.html">Plan</a></td>
|
||||
|
||||
<td><a href="doc/documentation.html">Reference Guides</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>
|
||||
<u>Index</u></h2>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="doc/introduction.html">Introduction</a></td>
|
||||
|
||||
<td>Introduction to Scene Graph in general, the OpenSceneGraph project
|
||||
itself and how to use it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/contents.html">Contents</a></td>
|
||||
|
||||
<td>A list of the directories in the distribution.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/install.html">Install</a></td>
|
||||
|
||||
<td>A guide of how to compile and install on all the supported platforms.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/dependencies.html">Dependencies</a></td>
|
||||
|
||||
<td>Listing of all the dependencies of the project, with links of where
|
||||
to download them.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/examples.html">Examples</a></td>
|
||||
|
||||
<td>Thumbnails and info on all the example applications which come with this
|
||||
distribution.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/data.html">Data</a></td>
|
||||
|
||||
<td>List of websites where one can download interesting and useful data
|
||||
from.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/sgv.html">Viewer</a></td>
|
||||
|
||||
<td>List of key bindings support by the osgGLUT::Viewer and hence sgv and
|
||||
the rest of demos.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/stereo.html">Stereo</a></td>
|
||||
|
||||
<td>Documentation on the commandline parameters and environmental variables
|
||||
which control stereo.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/osgdem.html">osgdem</a></td>
|
||||
|
||||
<td>Documentation on the how to use the osgdem utility to generate paged geospatial databases.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/plan.html">Plan</a></td>
|
||||
|
||||
<td>Details of development plans.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="doc/documentation.html">Reference Guides</a></td>
|
||||
|
||||
<td>Reference guides of the core libraries.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||