Up: SGI inventor Frequently Asked Questions (FAQ)
Next: -18- How hard is it to port from IRIS Inventor to Open Inventor?
Previous: -16- Why isn't Open Inventor available on the VGX/PI/GTX or GT?
Subject: -17- What new features are in Open Inventor that weren't in
IRIS Inventor?
Date: 30 Apr 1994 15:45:00 CDT
Some of the main features that are new with Open Inventor are:
Open Inventor Licensing
Open Inventor 2.0 represents the first release of Inventor that
is licensed to third parties to run on other platforms (e.g.,
Sun, HP).
The Inventor Mentor and The Inventor Toolmaker
Since Open Inventor has been licensed to run on other
platforms, the programming guides have been published and
distributed by Addison-Wesley Publishing Company. The books are
typically available through bookstores that offer a good
technical book selection. The Inventor Mentor is volume I of
the programming guide and describes the fundamentals of
Inventor programming (ISBN 0-201-62495-8). The Inventor
Toolmaker is volume II and provides advanced information for
programmers who want to extend Inventor.
Automatic caching
Open Inventor supports intelligent, automatic caching on the
parts of the database that are not changing. Previously,
caching was either `on' or `off' (set at SoSeparator nodes).
Inventor 2.0 supports a third setting, `auto'. This
SIGNIFICANTLY improves performance and simplifies programming.
Error handling
Inventor now supports a formal error handling system. Note that
the API was not affected by this change. All Inventor error
messages are now posted to an SoError class. The application
can supply its own error handlers, thus making it possible to
route error messages to dialogs, as well as stderr or stdout.
All handlers are called by the SoError::handleError() method.
When debugging, you can set a breakpoint on this method to stop
right before an error is handled.
Geometry primitives and SoCallbackAction
A new feature has been added to the generic Inventor traversal
action, SoCallbackAction, that allows for shapes to return
primitives (triangles, lines, points, normals, texture coords,
etc.) describing the object.
Naming
Nodes, paths, and engines can have names (strings) associated
with them. There are methods on SoBase::setName() and getName()
to set/get names. To search for objects by name, see
SoNode::getByName(), SoPath::getByName(), and
SoEngine::getByName(). Also, the SoSearchAction can now search
based on the name.
OpenGL rendering
Open Inventor 2.0 uses OpenGL for all rendering; there are no
calls to Iris GL in Inventor 2.0. If you have written derived
node classes in 1.0, the Iris GL code must be re-written to
OpenGL.
Printing
Printing has been completely reimplemented using OpenGL
rendering to an off-screen image. All rendering features can
now be printed (e.g. textures and transparency).
Render Culling
Inventor now supports object level culling to the viewport.
Culling, like caching, is controlled by SoSeparators.
Unknown nodes
Inventor 2.0 reads unrecognized node classes from file and
attempts to use them. When an unknown class is read, Inventor
will search for an accompanying DSO file and use it, (uses
environment variable LD_LIBRARY_PATH to search for file
classname.so) If none is found, an SoUnknownNode or
SoUnknownEngine is created and used instead.
Inventor 2.0 also supports a special option for nodes called
alternateRep. It can store a scene graph composed of standard
Inventor nodes which will be rendered as a stand-in for your
unrecognized node. During writing, the node or engine is
written back out. Note that this mechanism works only with
Inventor 2.0 files; unrecognized nodes in an Inventor 1.0 file
will still generate a read error. This mechanism allows user
subclassed nodes to be exportable, renderable, and re- usable.
SoEngine
A new class of objects used for animation and behavior.
Engines are lightweight objects that are connected between
nodes, the clock, and other engines to form interesting
behaviorial objects (e.g. spinning windmill). Engines can be
written to file along with the 3d scene.
Up: SGI inventor Frequently Asked Questions (FAQ)
Next: -18- How hard is it to port from IRIS Inventor to Open Inventor?
Previous: -16- Why isn't Open Inventor available on the VGX/PI/GTX or GT?