From: fouts@exacto.dallas.sgi.com (Christopher Fouts)
Subject: Re: Inventor?
Organization: Silicon Graphics (Dallas, TX)
Date: Wed, 29 Jul 1992 19:47:25 GMT

In article <712351699@tyranno.cs.duke.edu>, jek@duke.cs.duke.edu (James E. Kittock) writes:
|> 
|> Could someone please tell me about Inventor?  Anything would be
|> useful, including where to look for more information.  Thanks.
|> 
|> -- 
|> James Kittock   --   Duke class of 1992    --    Computer Science/Mathematics 
|> jek@cs.duke.edu | mcnc!duke!jek | PO Box 5750, Duke Station, Durham, NC 27706
|> "Yes, I will kiss the girl from Venus for science." - They Might be Giants

The following was posted in the Explorer news group a while back (Explorer
uses Inventor for its rendering).  Yesterday, SGI announced the availability
of Inventor for licensing to the computer industry.  Also, Digital Equipment
Co. will be the first company to license Inventor.  Inventor is available
now on SGI and will be available to licensees in the first quarter of
calendar 1993.


	    IRIS Inventor - An Object-Oriented 3D Toolkit

			Overview
			April 1992

Writing interactive 3D graphics applications has traditionally been a
tedious, time consuming, and difficult task requiring a high level of
programming expertise. Because it has been so difficult, developers have
typically taken one of two approaches. They have either invented their
own software abstraction above the low-level graphics commands or produced
portable, "lowest common denominator" applications with little or no
direct 3-D interaction. The former choice yields short-term solutions
that are rarely given sufficient design and implementation effort. The 
latter approach results in disjoint user interfaces in which users can
view 3-D objects but interact only through remote user interface widgets
or keyboard command languages.

IRIS Inventor, an object-oriented 3-D toolkit, offers a comprehensive
solution to these traditional programming problems without the compromises.
First, it presents a new programming model based on a 3-D scene database.
This includes a rich set of objects such as cubes, polygons, materials,
cameras, lights, trackballs, windows, 3-D viewers, and editors that speed
up your programming time and extend your 3-D programming capabilities.

Second, it provides an innovative event model that paves the way for 3-D
interaction. In addition, IRIS Inventor allows the programmer to focus on
the applications solution rather than graphics hardware implementation. If
the specific object or operation needed for a program does not exist, then
IRIS Inventor's object-oriented architecture makes custom additions easy.

IRIS Inventor is a software library for writing interactive 3-D programs.
It improves upon previous 3-D graphics libraries (such as GL, Phigs+, GKS)
by introducing a database for representing 3-D data, objects, and scenes.
IRIS Inventor matches a programmer's mental model of the task. Specifically,
it is not a 3-D graphics toolkit for drawing pictures. Rather, it is a 3-D
object toolkit for representing a user's 3-D physical models and operating
upon them. Rendering is just one of the many operations that you can apply
to a 3-D scene or data set.

This new model for 3-D object programming makes the programming paradigm
more simple and intuitive. It also paves the way for exciting 3-D
interactivity and flexible program development. For example, IRIS Inventor's
3-D picking returns useful information such as the point of intersection,
normal at the point of intersection, the nearest vertex, and more.
Furthermore, Inventor does not do picking by redrawing the scene as many
graphics libraries do. Instead, it does picking in software with immense
improvements in performance, functionality, and precision.

High-performance, high-precision picking allows you to add more interactivity
to your 3-D programs. Inventor's event model for 3-D objects is designed
to help you add that interactivity. Simply put, any 3-D object in a scene
can now listen and respond to user input events such as Mouse Down or Key
Pressed. This mechanism works exactly like any 2-D window system or toolkit
that distributes user events to windows or widgets. In the case of IRIS
Inventor, we have simply extended this idea to 3-D objects. You can now
write interactive 3-D objects that listen and react to user events.

The object-oriented architecture of Inventor makes it easy to generate
Postscript output. Printing is a different way of rendering a scene. The
scene database also makes a 3-D file format possible. Objects and scenes
that are saved to file retain their full 3-D physical character and can
be read back into another program. Other graphics library approaches either
write out display lists (thus losing much of the 3-D coherence of objects)
or require the programmer to create a separate file description.



Answers to Commonly Asked Questions

Q:	Is IRIS Inventor replacing GL?

A:	No. GL will always have its place as a lean and mean rendering library
that provides low-level, immediate-mode access to the frame buffer. Some 
applications will always require the GL frame buffer model to work. However, if
you are writing 3-D applications that require intensive user interactivity, a
3-D database, 3-D data exchange, picking, 3-D object printing, or a common
"look-and-feel", IRIS Inventor can save an enormous amount of time.

Q:	Is there a performance cost using a software layer on top of GL?

A:	Yes. However, few GL programs achieve peak graphics performance. This is 
because many applications have natural application overhead (CPU limited), and 
also because many programmers lack a solid understanding of the details and 
eccentricities of GL. If you are writing a simple display-only, immediate-mode
GL program, then it will run faster using straight GL, (but not much). However,
if your program has scene traversal, interactivity, picking, bounding box 
calculations, and other object space tasks, then Inventor will perform better
for you. This is because Inventor is specially tuned to make optimal use of GL
on each SGI machine.

Q:	Is IRIS Inventor a user interface toolkit?

A:	Yes and no. IRIS Inventor contains mostly 3-D objects. There is little
in the way of conventional user interface objects such as buttons, dialogs,
and menus. However, Inventor includes a full-fledged event model, a framework
designed for 2-D or 3-D user interaction, and some manipulator objects for 3-D
user interface building. Note that the IRIS Inventor Xt Component and Utility
Library includes some traditional 2-D user interface widgets.

Q:	What are GLworks and Scenario?

A:	GLworks was one of the many names that was considered for the product.
It was unfortunately used in an Iris Universe article, but later shelved.
Scenario was the internal project name.

Q:	How is IRIS Inventor related to IRIS Explorer?

A:	IRIS Explorer is an application creation system and user environment
that provides visualization and analysis functionality for scientists and
engineers. IRIS Inventor is an object-oriented toolkit for 3-D application
programmers. Explorer's 3-D geometry file format is Inventor's 3-D file
format. Explorer's Render Module was written using IRIS Inventor, and custom
Explorer rendering modules can be written using Inventor.







-- 

Chris Fouts				Email:  fouts@dallas.sgi.com
Systems Engineer			Phone:  (214)-788-4122
Silicon Graphics Computer Systems	Vmail:	8714
Dallas, TX

                      "I am NOT argumentative."