Added Geoff Michel's osgpick and osgUtil::PickVisitor code.

This commit is contained in:
Robert Osfield
2003-04-13 13:26:41 +00:00
parent 5ecc25540c
commit 026dc2cbb7
15 changed files with 762 additions and 50 deletions

View File

@@ -30,7 +30,7 @@
<ul>
<li>Open scene graph .osg demo data set can downloaded here:</li>
<i><a href="http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.1.tar.gz">http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.1.tar.gz</a></i>
<i><a href="http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.4.tar.gz">http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.4.tar.gz</a></i>
<br>
<br>
@@ -40,7 +40,7 @@
<br>
<br>
<li>Terrain models in OpenFlight .flt format at Grime:</li>
<a href="http://www.grime.net">http://www.grime.net</a>
<a href="http://www.grime.net/Downloads/simulations.htm">http://www.grime.net</a>
<br>
<br>
@@ -58,11 +58,6 @@
<i><a href="http://www.3drocketfuel.com">http://www.3drocketfuel.com</a></i>
<br>
<br>
<li>Vehicle models in OpenFlight .flt format at Full Sail (spinnercar & veritech):</li>
<a href="http://www.fullsail.com/loader/models.html">http://www.fullsail.com/loader/models.html</a>
</ul>
</body>

View File

@@ -36,20 +36,11 @@
<h2>
<u>Compiling and installing the OpenSceneGraph</u></h2>
The scene graph depends upon Standard C++, STL and OpenGL so you need a
C++ compiler up to the task and OpenGL or Mesa installed. The viewer depends
upon 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 inbuilt
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 osgText library adds the dependency of the freetype library for
support of true type fonts, however it is not essential to the core library,
so you can comment it out from compilation by modifying the src/Makefile,
and examples/Makefile. I you wish to use fonts then you can download freetype
from www.freetype.org. The osgText library also requires an up to date
GLU implementation which supports GLU1.2 tessellation routines. If you
your current GLU is out of date you'll need to download the latest, for
instance the sgi's sample implementation for GLU from the www.opengl.org
website.
<p>The OSG also has a set of plug-ins which support non-native 3d database
and image formats, several have no dependencies on external libraries (flt,3ds,obj,
lwo,dw, tga &amp; pic), while others (pfb,jpeg,gif,tiff) require other

View File

@@ -71,7 +71,7 @@ scientific and commercial visualization, training through to modeling programs.
<h3>
<u>Why use a Scene Graph - Performance, Productivity, Portability and Scalability</u>.</h3>
<ol><i>Performance</i> - scene graphs provide an excellent framework for
<ol><b><i>Performance</i></b> - 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
@@ -83,7 +83,7 @@ with just a few operations! Without state sorting, the the buses and GPU
will thrash between states, stalling the graphics pipeline and destroying graphics
througput. As GPU's get faster and faster, the cost of stalling the graphics
is also going up, so scene graphs are becoming ever more important.
<p><i>Productivity</i> - scene graphs take away much of the hard work required
<p><b><i>Productivity</i></b> - 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
@@ -96,12 +96,12 @@ 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><i>Portability</i> - scene graphs encapsulate much of the lower level
<p><b><i>Portability</i></b> - 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><i>Scalability</i> - along with being able to dynamic manage the complexity
<p><b><i>Scalability</i></b> - 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,
@@ -123,7 +123,7 @@ development model to provide a development library that is legacy free
and well focused on the solving the task. The OpenSceneGraph delivers on
the four key benefits of scene graph technology outlined above using the
following features:
<ol><i>Performance</i> - supports view frustum culling, occlusion culling, small feature culling,
<ol><b><i>Performance</i></b> - 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
@@ -134,7 +134,7 @@ of Detail (CLOD) meshes on top the scene graph. These allow the visualization
of massive terrain databases interactively, examples of this approach can
be found at Vterrain.org and TerrainEngine.com, both of which integrate
with the OpenSceneGraph.
<p><i>Productivity</i> - by combining lessons learned from established
<p><b><i>Productivity</i></b> - by combining lessons learned from established
scene graphs like Performer and Open Inventor, with modern software engineering
boosts 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
@@ -143,7 +143,7 @@ to the OpenSceneGraph and to integrate it with their own applications. With
a full feature set in the core scene graph, utilities to set up the scene
graph and viewers and a wide range of loaders it is possible to create
an application and bring in user data with a very small amount of code.
<p><i>Portability</i> - The core scene graph has also been designed to
<p><b><i>Portability</i></b> - 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
@@ -154,7 +154,7 @@ In the distribution there is already the osgProducer library, and in the Bazaar
found at openscenegrph.org/download/ one can find examples of applications
written on top of Qt, MFC, WxWindows and SDL. Users have also integrated it
with Motif, and X.
<p><i>Scalability</i> - the scene graph will not only run on portables all
<p><b><i>Scalability</i></b> - the scene graph will not only run on portables all
the way up to Onyx Infinite Reality Monsters, it supports the multiple
graphics subsystems found on machines like a mulitpipe Onyx. This is
possible because the core scene graph supports multiple graphics contexts
@@ -162,10 +162,10 @@ 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. This has been demonstrated using the OpenSceneGraph in conjunction
with SGI's OpenGL multipipe SDK. We also have osgMP in development, which
will be cross platform and will transparently support multiple multipipe systems
like the Onyx and graphics clusters</ol>
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.</ol>
All the source to the OSG is published under the GNU Lesser General Public License
(LGPL) which allows both open source and closed source projects to use,
modify and distribute it freely as long its usage complies with the LGPL.
@@ -180,7 +180,7 @@ 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 fall 2002. Despite the beta development status,
place, with a 1.0 release in second half of 2003. Despite the beta development status,
the project has already earned the reputation 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
@@ -211,15 +211,15 @@ 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>For full instructions of how to run the demos read the <a href="examples.html">demos</a>
<p>For full instructions of how to run the examples read the <a href="examples.html">examples</a>
page.
<br>
<hr>
<h3>
<u>Learning how to use the OpenSceneGraph</u></h3>
The OpenSceneGraph distribution comes with a reference guide for each of
the component libraries - osg, osgDB, osgUtil, osgText, osgParticle and osgProducer, a set
of demos - the source of which can be found in examples. For questions
the component libraries - osg, osgDB, osgUtil, osgText, osgSim, osgParticle and osgProducer, a set
of examples - the source of which can be found in examples. For questions
or help which can't be easily be answered by the reference guide and demo
source, one should join the mailing list (details below). There are also
the beginnings of a <a href="http://www.c2.com/cgi/wiki?OpenSceneGraphFaq">Wiki

View File

@@ -37,7 +37,7 @@
<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 fall 2002.
release date in second half of 2003.
<h3>
Fturue work include:</h3>
@@ -45,28 +45,27 @@ Fturue work include:</h3>
<ul>
<li>
Multi-pass fallback for when multi-texturing is not supported.</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>
Open Producer - cross platform library for transparently managing mulitpipe and
cluster graphics systems. Similar in concept to OpenGL multipipe SDK, except
cross platform and with support of graphics clusters.</li>
Support for clustering in Open Producer and osgProducer.</li>
<li>
osgSim - cross platform library for the visual simulation market with support for light points,
small target anti-aliasing, geometry correction and clip mapping.</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>
Replace osgProducer with Open Producer for the demos. Open Producer is a much cleaner and more scalable
windowing API. Move osgProducer out of the distribution and into the bazaar.</li>
Development of virtual texture support for rendering in real-time massive images, such as whole earth textures.</li>
<li>
Introduce a new library osgEnv/osgShapes, which adds support for creating
shapes and environmental effects such as stars, planets, cloud layers and
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>