26.1. Overview

Immersive display systems provide a unique and powerful capability to explore data with viewer-centered perspective, stereo, and six degrees-of-freedom interaction. These capabilities can provide enhanced understanding, increased efficiency and collaboration benefits for many application areas including geoscience, medicine, product design, and data visualization. Immersive display systems include the CAVE™, RAVE™, ImmersaDesk™, RealityCenter™, and many others. In addition to the display system, stereo glasses, a head tracker, and a tracked input device such as a “ wand” are generally used.

Collaborating with an Immersive Display

Figure 26.1. Collaborating with an Immersive Display

Open Inventor, with its support for multiple threads and multiple graphics pipes, is an excellent choice for rendering in an immersive environment. Just as in a desktop environment, Open Inventor provides:

  • A high-level, object-oriented, scene graph interface that is easy to use and avoids the need to program with OpenGL directly,

  • Powerful rendering features such as level-of-detail, billboards, and view culling,

  • An extensive set of rendering extensions including volume rendering, data visualization, terrain visualization, and more, and

  • Portability across Unix, Linux, and Windows platforms.

In addition, Open Inventor provides special event classes designed for tracked input devices (Section 26.2, “Event Classes”) and 3D interaction components that work with these events (Section 26.3, “Draggers and Selection”), as well as with 2D events for the desktop environment. Open Inventor’s 3D interaction components are called draggers and manipulators. A dragger has a 3D user interface that converts user actions into translation, scale, and rotation with visual feedback. Manipulators associate a dragger, or collection of draggers, with a specific object and allow the object to be directly manipulated inside the scene. See The Inventor Mentor, Chapter 15, for more general information about draggers and manipulators.

In addition to rendering and interaction, immersive applications need to manage multiple windows, viewports, and graphics pipes. The Open Inventor ScaleViz extension (Chapter 3, ScaleViz) is designed to satisfy this need. The ScaleViz extension provides a “multi-pipe viewer” class which replaces the standard Open Inventor viewer class in the application. Because the ScaleViz extension is externally configurable, this small change allows the same application to run on a wide range of displays from laptop to desktop to fully immersive.

The ScaleViz extension also provides convenient support for tracking. By default it will automatically use the head tracking information (if enabled) to update the view frustum, use the wand joystick to navigate through the scene and convert wand tracking and button information into Open Inventor events. All of these behaviors can be extended and customized by the application.

Open Inventor can also be easily integrated with third party toolkits such as CAVELib™ ( www.vrco.com), Multipipe SDK™ ( www.sgi.com), or VRJuggler™ ( www.vrjuggler.org). The Open Inventor SDK includes example programs for all of these toolkits. See Section 26.4, “Programming with CAVELib” for more details about programming with Open Inventor and CAVELib.

If you use multiple render threads, you must make sure that all the rendering code is thread and pipe safe. All the core Open Inventor nodes are safe to use with multiple render threads, but your application may use custom nodes or callback nodes that require modification. See Chapter 24, Multithreading for more information about Open Inventor and multiple threads.