Open Inventor Overview
Release 9.9.35
What is It?
The Open Inventor is an object-oriented toolkit that simplifies and abstracts the task of writing graphics programming into a set of easy to use objects. These objects range from low level data-centered objects such as Sphere, Camera, Material, Light, and Group, to high level objects for Mesh visualization and Volume Rendering. The foundation concept in Open Inventor is the "scene database" which defines the objects to be used in an application. When using Open Inventor, a programmer creates, edits, and composes these objects into hierarchical 3D scene graphs (i.e., database). A variety of fundamental application tasks such as rendering, picking, event handling, and file reading/writing are built-in operations of all objects in the database and thus are simple to invoke.
Since Open Inventor is object-oriented (written in C++), it encourages programmers to extend the system by writing new objects. Open Inventor users have created a variety of new objects that are not included in the product, such as: Bezier surfaces, CSG objects, animation objects, special viewers, and many more.
Rendering
The rendering mechanism inside Open Inventor objects employs OpenGL. During rendering, each object automatically makes the proper, efficient calls to OpenGL. Since Open Inventor was designed specifically to use OpenGL for graphics rendering, it is highly optimized to take advantage of all OpenGL accelerators. Its optimized scene graph pipeline also allows the developer to target PC and low-end systems without hardware acceleration.
Furthermore, Open Inventor rendering supports a caching scheme which automatically generates very fast renderings of the database without additional traversal overhead.
Picking
Picking is the computer graphics term for selecting shapes in a 3D scene. Picking can select shapes intersected by a ray (SoRayPickAction) or shapes partially or completely inside a screen region like a "lasso" (SoExtSelection). Ray picking is typically used to detect what shape(s) are currently underneath the cursor. Open Inventor picking is very efficient and automatically uses cached bounding boxes to avoid traversing portions of the scene graph (culling). In some cases, Open Inventor uses the GPU to accelerate picking. Picking returns a variety of 3D information and detail about what objects were picked. A sorted list of picked objects and corresponding information is returned to the programmer. Picking is fast enough that programs can perform 3D locate highlighting as the mouse moves across a 3D window.
Interaction, Events, and Devices
Inventor defines an event model for writing 3D interaction. This model is window system independent. It is quite easy to use and makes 3D direct manipulation programming possible. Open Inventor includes a variety of interactive 3D objects and tools for writing interactive objects, such as: Manipulators, Draggers, and Projectors. The flexible event model encourages programmers to extend the system to support new devices and event types. Events include keyboard events, mouse events, touch events and gestures, and even tracked input device events for virtual/augmented reality applications.
File Formats
The Open Inventor 3D File Format is a de-facto standard for 3D data. The format supports both an ASCII and a compact binary format. The binary format is network-neutral and thus can be exported across machine boundaries. Data files can be compressed to further reduce their size.
SoEXTENDER/SoINTERNAL Methods and Classes
-
SoEXTENDER. Member functions and classes that are listed in the Open Inventor header files under "SoEXTENDER public" are available to programmers who wish to extend the toolkit. Although they are not documented, you should not avoid using them because of concerns that they may be subject to change without notice. They are as concrete and reliable as the documented methods. For detailed information on extending Open Inventor, see The Inventor Toolmaker, published by Addison-Wesley.
-
SoINTERNAL. Member functions and classes that are listed in the Open Inventor header files under "SoINTERNAL public" are not intended for public use. They are subject to change without notice and are not recommended for use in Open Inventor applications.
Note: The words SoEXTENDER public, SoINTERNAL public, and protected do not appear in the header files when viewed using the Open Inventor help file. To see the exact contents of the header files, view the header files directly.
Icon Reference
Other Sources of Information
-
On-line documentation (accessible from OIVHOME/doc/index.htm) This HTML-based comprehensive documentation suite covers Open Inventor as well as its extensions -- MeshViz, HardCopy, VolumeViz, etc. It contains system requirements and installation instructions; release notes and lists of fixed bugs; a reference manual, a user's guide, and FAQs; as well as information about a variety of other topics including performance, redistribution packaging, and more.
-
[Win32 only] ladmin.htm explains how VSG product licensing works on Windows. This information is useful even if you do not use the Ladmin program.
-
ReadMe files (clear text files accessible from OIVHOME/ReadMe/*.txt)
-
ReadMe1st.txt which is the first file to read.
-
Printed materials
- The Inventor Mentor, published by Addison-Wesley. This book describes how to write applications using the Open Inventor toolkit. This is an excellent book for new users of Open Inventor.
- Open Inventor C++ Reference Manual, published by Addison-Wesley. It is out of print, obsolete, and no longer delivered with the Open Inventor SDK. The on-line Reference Manual -- which you are reading now -- contains complete, up-to-date info.
- The Inventor Toolmaker, published by Addison-Wesley. For advanced programmers, this book describes how to create new Open Inventor classes, and how to customize existing classes.
- Open Inventor User's Guide, published by VSG. Part 1 of this book describes the features added by VSG to the core Open Inventor implementation. Part 2 describes the features of the VSG product extensions: MeshViz, VolumeRendering, and so forth. Includes many illustrated examples.
-
Other
- Open Inventor technical support (if your license has technical support)
- The Open Inventor newsgroup: comp.graphics.api.inventor
- Sample programs and sample Open Inventor data files (*.iv) - These are an excellent source of information about using Open Inventor. Example programs are provided to demonstrate almost every signficant feature of Open Inventor.
- VSG web site (http://www.vsg3d.com) - May provide additional helpful information.
Third Party Software
Open Inventor uses libraries from a number of third party software providers, including some open source libraries. To the best of our knowledge, all third party libraries are used in accordance with the terms of their appropriate license agreement (if any). See the topic 3RD PARTY SOFT. on-line documentation (accessible from $OIVHOME/doc/index.htm) for information on the version numbers as well as copyright notices, licenses, etc., as requested by the various third parties.
Generated with...