- 1 - 1. Introduction Open Inventor 2.0 Execution Environment is required on any system that runs Open Inventor 2.0 programs. There are a variety of programs that require this subsystem and thus it is installed by default. Most users do not have to concern themselves with the details of this subsystem; simply install the defaults and enable Inventor programs to run. The curious user may be interested in running the Inventor demonstration programs (inventor_eoe.demo.progs), or browsing the sample 3d models that are supplied (inventor_eoe.sample.data). Run /usr/sbin/ivview to browse the sample models (ivview is installed as part of inventor_eoe.sw.inventor). Open Inventor 2.0 is the second major release of Inventor, and runs on IRIX 5.2-based operating systems. It contains a plethora of new features and fixes since IRIS Inventor 1.0. Important Note: The Inventor 2.0 Execution Environment includes two compatibility subsystems that allow programs linked with either Inventor 1.1* or Inventor 1.0.1 to run on Irix 5.2. The Open Inventor Development Kit is available as a separate product; it is an object-oriented 3D toolkit that offers a comprehensive solution to 3D graphics programming problems. It dramatically simplifies and empowers programmers writing 3d graphics programs. If you write 3d graphics programs, or have a hankering to start, then you really should check out Inventor! Note: Packaged with this software is a separate sheet that contains the Software License Agreement. This software is provided to you solely under the terms and conditions of the Software License Agreement. Please take a few moments to review the Agreement. This document contains the following chapters: 1. Introduction 2. Installation Information 3. New Features - 2 - 1.1 Inventor_Releases_and_Binary_Compatability IMPORTANT: Due to C++'s virtual tables, C++ libraries are not binary compatible. Thus, each Inventor release/version has a unique run-time shared library or DSO. An Inventor program linked with release 1.0 can ONLY run if the run-time shared library for 1.0 is installed (libInventor_s). An Inventor program linked with Inventor 1.0.1 can ONLY run if the run-time library for 1.0.1 is installed (libInventor1.0.1_s). With the advent of DSO's and 5.0, things changed a little, but the concept is the same. Rather than creating run-time shared libraries for each release (_s), we create DSO's (.so). The name of the MOST RECENT DSO is libInventor.so. Older versions of DSOs will be called libInventor.so.x. This renaming occurs when an updated Inventor is installed. For example, when developers install Inventor 2.0 (including the compatibility sub-systsem), a new libInventor.so will be installed, plus libInventor.so.1 for 1.1.2 programs. Programs will automatically find the `right' DSO and use it to run (assuming that it was installed). - 3 - Here's a list of the existing supported Inventor releases: Release Irix Need run-time Notes 1.0.1 4.0.1 libInventor1.0.1_s Bug fixes to 1.0 1.1.2 5.1.1 libInventor.so Onyx, Challenge, and Indy 2.0 5.2 libInventor.so THE release to use. Here's a basic rule of thumb: If you are running Inventor programs linked with `older' versions of Inventor than what is currently installed on your system, then you need to install the appropriate inventor_eoe compatibility sub-systems. 1.2 Online_Release_Notes After you install the online documentation for a product (the relnotes subsystem), you can view the release notes on your screen. If you have a graphics system, select ``Release Notes'' from the Tools submenu of the Toolchest. This displays the grelnotes(1) graphical browser for the online release notes. Refer to the grelnotes(1) man page for information on options to this command. If you do not have a graphics system, you can use the relnotes command. Refer to the relnotes(1) man page for accessing the online release notes. - 1 - 2. Installation_Information This chapter lists information supplemental to the IRIS Software Installation Guide. The information listed here is product-specific; use it with the Installation Guide to install the Open Inventor Execution Environment. 2.1 Open_Inventor_Execution_Environment_Subsystems Open Inventor includes these subsystems: inventor_eoe.sw.inventor Required subsystem to run Inventor 2.0 programs inventor_eoe.data.sample A variety of Inventor 3D clip objects inventor_eoe.demo.progs Inventor 2.0 demo programs inventor_eoe.man.pages Open Inventor man pages for tools and demos inventor_eoe.man.relnotes These release notes inventor_eoe.sw.1_0 Run-time shared libraries (_s) for Inventor 1.0.1 - install this subsystem if you have Inventor 1.0.1 programs linked on Irix 4.0. inventor_eoe.sw.1_1 Run-time dynamic libraries (.so) for Inventor 1.1.2 - install this subsystem if you have Inventor 1.1.2 programs linked on Irix 5.*. inventor_eoe.sw.help Help cards for Inventor Xt components - 2 - 2.2 Open_Inventor_Subsystem_Disk_Space_Requirements This section lists the subsystems (and their sizes) of the Open Inventor Execution Environment software. If you are installing this software for the first time, the subsystems marked ``default'' are the ones that are installed if you use the ``go'' menu item. To install a different set of subsystems, use the ``install,'' ``remove,'' ``keep,'' and ``step'' commands in inst to customize the list of subsystems to be installed, then select the ``go'' menu item. Note: The listed subsystem sizes are approximate. Refer to the IRIS Software Installation Guide for information on finding exact sizes. Subsystem Name Subsystem Size (512-byte blocks) inventor_eoe.data.sample 15051 inventor_eoe.demo.progs 2330 inventor_eoe.man.pages (default) 64 inventor_eoe.man.relnotes (default) 38 inventor_eoe.sw.1_0 12416 inventor_eoe.sw.1_1 (default) 10388 inventor_eoe.sw.help 3051 inventor_eoe.sw.inventor (default) 14058 2.3 Installation_Method All of the subsystems for Open Inventor Execution Environment can be installed using IRIX. You do not need to use the miniroot. Refer to the IRIS Software Installation Guide for complete installation instructions. 2.4 Configuration_Files The X resource file for Inventor Xt Components is /usr/lib/X11/app-defaults/Inventor. It contains the X resource default settings for components. See the individual Xt component man pages for details on the resources used. - 1 - 3. New_Features This chapter describes the major new features added to Open Inventor 2.0 since IRIS Inventor 1.0. Note that Open Inventor is a software development kit and these features will probably not be of interest to end-users. See the Release Notes for the Open Inventor Development Kit for details on what is new, what is changed, and what is obsolete. 3.1 New_System_Features_Summary This section describes the major system feature additions in Inventor 2.0. See The Inventor Mentor (2.0 programming guide) or read the man pages for details. 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). Open Inventor employs OpenGL for all rendering. 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 in bookstores that offer a good technical book selection. The Inventor Mentor is volume I of the programming guide and describes the fundamentals of Inventor proramming. The Inventor Toolmaker is volume II and provides advanced information for programmers who want to extend Inventor. Automatic caching This release 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. Note that there are four kinds of caching possible: render, bounding box, culling, and picking. Caching is described in detail in The Inventor Mentor. Dynamic loading This release uses Dynamic Shared Objects (DSO). This is a recent Unix feature that replaces and obsoletes static shared libaries. As of the 5.0 Irix release, static shared libraries can no longer be built. See /usr/share/src/Inventor/samples/Makefile* for examples on how to write a Makefile for Inventor 2.0. Note that other libraries are implied and need not be referenced in the link line. - 2 - 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. See The Inventor Mentor (programming guide) for details, or see man pages for SoError and SoReadError. 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. Object subclassing An improved and simplified node subclassing scheme is introduced in this release. See the Extender Changes and Features chapter and The Inventor Toolmaker (programmming guide, volume 2) for details. OpenGL rendering Open Inventor 2.0 uses OpenGL for all rendering; there are no calls to Iris GL in Inventor 2.0. Improved 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). Printing can render a scene to an offscreen X pixmap and return either a Postscript bitmap image or an unsigned char buffer. Reading 1.0 files Inventor 2.0 reads 1.0 files and does the best job possible to convert to 2.0. 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. Note that this will only work if the "fields" entry is defined for this node - see the file - 3 - format chapter of The Inventor Mentor. This release 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 (but see the section in these release notes for information on writing upgraders for Inventor 1.0 nodes). This mechanism allows user subclassed nodes to be exportable, renderable, and re- usable. See The Inventor Mentor for details. 3.2 Inventor_Tools_and_Demos 3.2.1 Inventor_Tools_-_New_or_Improved The Inventor tools are utility programs that Inventor users and developers may find useful on a daily basis. They are installed with the inventor_eoe.sw.inventor subsystem. Note that the source is included with the Inventor Developer's Kit. The executables are installed in /usr/sbin/iv*. ivcat Reads an Inventor file and prints to stdout in ascii or binary format. This program is handy for converting files between ascii and binary formats. A few new features have been added to this tool since 1.0 (e.g, -t removes texture file dependency) - type `man ivcat' for details. ivinfo Prints basic information about an Inventor file - type `man ivinfo' for details. ivview A NEW, FAST, and very SIMPLE Inventor viewer program that uses ivquicken - type `man ivview' for details. ivquicken This NEW program optimizes an Inventor file for faster rendering - see man page for details. iv2toiv1 This NEW program attempts to convert an Inventor 2.0 data file into a 1.0 file - see man page for details. It obviously cannot be perfect, but it does an good job. 3.2.2 Inventor_Demos_-_New_or_Improved The Inventor demos are installed with the inventor_eoe.demo.progs subsystem. Note that the source code to these demos (and more) is included in the Inventor Developer's Kit. These programs are either entertaining or educational, and easy to use. The executables are installed in /usr/demos/Inventor/*. - 4 - SceneViewer A few features have been removed from the 1.0 version of SceneViewer. drop A NEW 3d tetris-like game. gview A NEW program that edits 3d scene graph databases. maze A NEW 3d skill game. qmorf Same old 3d quad mesh metamorphosing program. revo Same old surface of revolution modeling program. textomatic Same old 3d extruded text creation program.