ScaleViz Release Notes

ScaleViz 7.2 (October 2008)

Distributed RayPick action precision

ScRayPickAction now supports setting the pick input point (viewport coordinate) using float values. This may be necessary to keep precision when a desktop is magnified on a wall of screens. See :

ScaleViz 7.1.1 (June 2008)

No new features were added. See the fixed bugs section.

ScaleViz 7.1 (April 2008)

No new features were added. See the fixed bugs section.

ScaleViz 7.0.1 (February 2008)

No new features were added. See the fixed bugs section.

ScaleViz 7.0 (December 2007)

ScaleViz Runtime Connection/Disconnection

An Open Inventor application using ScaleViz can now dynamically connect to a render cluster, then later disconnect from the cluster and continue to work with the application locally.

Dynamic Load Balancing for Tile Compositing

ScaleViz can now dynamically change the extent of the screen tiles to better balance the rendering tasks between render nodes and improve performance.

Local Compositing

ScaleViz can now mix local and remote rendering. This provides support for custom nodes that cannot be distributed and for cases where data should be kept local.

New Automatic Distribution of Scene Graph for Depth Compositing

The new SoDistributionAction class allows you to choose between two different ways of automatically distributing the scene graph:

Improved Custom Node Support

Performance Optimization Options for Tile and Depth Compositing

Support for Selected Actions on the Cluster Side

Some actions can be performed on the cluster side. For example, GetBoundingBoxAction, GetPrimitiveCountAction, and RayPickAction. These classes are ScGetBoundingBoxAction, ScGetPrimitiveCountAction, and ScRayPickAction.

Support for Passive Left/Right Stereo

Passive stereo is supported for tile display and immersive configurations by using the new cameraMode field of the SoFlatScreen and SoScreen configuration nodes.

New SoDMXScreen Node Simplifies DMX External Tool Usage

SCALEVIZ_USER_LIBS Replaced by OIV_USER_LIBS

SCALEVIZ_USER_LIBS is no longer used, but replaced by OIV_USER_LIBS. This environment variable is used to specify which libraries to search for custom nodes.

New Communication Node (SoClusterGateway)

There is a new communication node (SoClusterGateway) to manage the connection between the remote application (external network) and cluster nodes (internal network). This allows access to a remote cluster through a non-Graphic Master node.

ScaleViz Configuration File Changes

Support for Fast Editing, Full-Scene Antialiasing

Fast editing and full-scene antialiasing, Open Inventor core features, are now supported when using ScaleViz rendering.

ScaleViz 6.1 (March 2007)

The cluster rendering capabilities of ScaleViz have been greatly expanded in ScaleViz 6.1.

There has been no change to the multipipe rendering capabilities of ScaleViz.

Here are highlights of the new cluster rendering features:

Each of these items is described in further detail below. For complete details, see the reference manual and/or the updated User's Guide (UsersGuide.pdf).

Tile Compositing with SoTileComposer Nodes

Tile compositing allows you to divide the application viewers viewport into several "tiles" that will be rendered independently by different render nodes, then composited into a single image on a single display.

This configuration improves performance (fill rate) for volume rendering because each render node renders only its tile (subregion) of the viewport. It also improves image quality (level of detail) for VolumeViz LDM-based applications because each render node uses all of its system memory and GPU texture memory.

To specify the render node and the size and position of the tile associated with each render node, you will use a ScaleViz configuration file and SoTileComposer nodes (one per render node). The SoTileComposer node has a hostname field for specifying the computer to use, as well as tileSize and tileOrigin fields for specifying the size and position of each tile.

Depth Compositing with SoDepthComposer Nodes

Depth compositing allows you to divide the application viewer's scene graph into several parts ("subgraphs") that will be rendered independently by different rendering nodes, then composited into a single image on a single display based on the depth value of each pixel.

This configuration improves performance for scene graphs with very large geometry, i.e., having large numbers of triangles.

In order to use depth compositing, you must associate the subgraphs of your scene with specific render nodes.

For example, if you have 4 render nodes in the cluster, it would make sense to assign parts of your scene graph to the 4 render nodes such that the rendering load is roughly balanced between the nodes.

Render units 1-N are associated with SoDepthComposer nodes in the order in which they appear in the ScaleViz config file. That is, the first SoDepthComposer node in the file corresponds to render unit 1, and so on.

In your scene graph, you will use the new renderUnitId field of SoSeparator (or SoVRMLGroup) to specify the render unit to be used for rendering a particular subgraph.

By default, the value of renderUnitId is -1, which means that the subgraph is not distributed to any node. In other words, in order to use depth compositing, you must modify renderUnitId from the default, otherwise nothing will be rendered.

For sample distributed scene graphs, see: $OIVHOME/data/ScaleViz/models/distributed/harley.iv and test_1234.iv

Immersive Configuration Supported with SoTracker Nodes

It is now possible to use an immersive configuration, including head tracking, with cluster rendering. Use the hostname field of SoScreen in a configuration file to specify the render node to be used for each screen.

Previously, it was only possible to set up an immersive environment when using multipipe rendering.

Remote Access with Image Compression

Previously ScaleViz render nodes were limited to displaying their image on a directly attached device (screen or projector). Now the rendered image can be composited with images from other render nodes and displayed in the Open Inventor viewer window on the application node, which may be physically remote from the render cluster.

Depending on the network connection between the render machines and the display machines, it may be appropriate to use more (or less) frame compression as well as more (or less) lossy filtering. It is now possible for you to control these parameters via the ScaleViz configuration file (using SoMasterConfig) or using the new Remote Parameters dialog. SoMasterConfig has the following new fields:

The new Remote Parameters dialog is accessed via a keyboard shortcut, SHIFT+F9 by default. This shortcut can be changed by using configuration parameter OIV_REMOTEDIALOG_SHORTCUT. In addition to allowing you to configure the network profile, lossy mode, and lossy quality, the dialog also displays the frame rate and the bandwith in Mbits/sec.

NOTE:

This is not the same "remote rendering" in Open Inventor that is (still) supported via the following environment variables: OIV_LOWRESRENDER, OIV_LOWRESHIGHPERCENT, OIV_LOWRESLOWPERCENT.

Using classic remote rendering the user logs in and the application runs on a remote (server) machine. Using ScaleViz 6.1 the user logs in and the application runs on the local machine. In both cases rendering is done on the remote machine/cluster. Classic remote rendering does not support cluster rendering and requires a third party tool such as VNC to display the application's user interface. ScaleViz 6.1 is self contained.

Application/Cluster Heterogeneity Support for OS and Architecture

Your application can now run on a different OS than the render nodes. (However, all of the render nodes must have the same architecture and be running the same OS.)

Auto-Configuration Support

To simplify the specification of ScaleViz configuration files, you can provide a ScaleViz resource file that describes the available cluster resources. The config file can be very simple and ScaleViz will do automatic configuration based on the available resources. For complete details, see the chapter on ScaleViz in the User's Guide.

SoQt Viewer Application Support

SoQt viewers can now be used with cluster rendering. Previously only SoXt and SoWin applications were supported.

NOTE: SoQt-based viewers are *still not* supported with multipipe rendering.

Application Can Run on a Render Node

Your application can now run on a render node. Previously this was not possible.

ScaleViz 6.0 (March 2006)

ScaleViz is a new extension that adds support for cluster rendering to Open Inventor and incorporates the capabilities of the previous MultiPipe extension (multi-pipe rendering and immersive VR).

Cluster Rendering

ScaleViz allows Open Inventor applications to render using a graphics cluster, that is, using a group of computers connected via a network, where each computer controls one or more screens of a multi-screen display system. ScaleViz synchronizes the different nodes and ensures that the same scene is rendered simultaneously on all of the screens.

Cluster rendering can be used, for example, to display a scene graph very large, at very high resolution, on a "wall" consisting of a grid of screens, with each screen connected to a computer doing its portion of the rendering.

In ScaleViz, the scene graph is distributed. The application runs on the master node and the Open Inventor scene graph is automatically copied to each of the rendering nodes. Each render node is in charge of rendering its portion of the total image, using its local copy of the scene graph. Once the scene graph has been copied, only changes, e.g., new field values, need to be sent to the render nodes.

Each render node runs a small Open Inventor application called the OIRU (Open Inventor Render Unit). At application startup, ScaleViz starts the OIRU on each of the render nodes.

It is very simple to make (most) existing Open Inventor applications ready for graphics cluster rendering. The main task is to supply a ScaleViz configuration file containing information about the graphics cluster. The configuration file specifies the computers in the cluster, the portion of the view volume they are responsible for rendering, and where on each screen the graphics should be rendered. Cluster rendering is only enabled if the configuration file contains an SoMasterConfig node.

See the User's Guide for complete details, including limitations of this release of cluster rendering.

NOTE: Like other extensions, ScaleViz requires a separate license. One of its fields specifies the maximum number of render nodes allowed. If its value is zero, multipipe rendering and immersive VR is allowed, but not cluster rendering.

Multipipe Rendering, Immersive VR

The multipipe rendering and immersive VR capabilities are unchanged from the previous version (Multipipe 3.0).

MultiPipe 3.0 (August 2004)

The most significant new feature added to MultiPipe is a 3D user interface toolkit for immersive environments.

3D User Interface Toolkit (3D DialogViz)

With the new release of DialogViz, a single definition of your GUI can be instantiated as 2D desktop widgets or as 3D geometry for use in immersive environments.

Unlike 2D DialogViz, which is unlocked using an Open Inventor license string, the 3D components are unlocked using a MultiPipe license string.

Example: $OIVHOME/src/DialogViz/examples/3D/simple3DMenu

You can redefine the appearance of the 3D components using skins. Several pre-defined skins are provided (default, texture, and transparent) or you can define your own if you wish. See SoDialogViz for additional info.

Example: $OIVHOME/src/DialogViz/examples/3D/setSkin

Direct Manipulation of Draggers (For Tracked Input)

Draggers can now take position and orientation changes directly from a tracking device's position and orientation. Specifically the difference between the tracker's current values and the values at the start of the interaction is applied as an incremental change to the dragger. In general this is a much more natural way to manipulate objects in an immersive environment. You can use the setTrackerDirectMode method to enable this behavior. Alternatively, you can use the new configuration keyword: OIV_TRACKER_DIRECT_MODE. See SoDragger for more info.

MultiPipe 2.0 (April 2003)

More Display Support

Existing support for tiled displays is now extended to immersive multi-wall displays.

In addition to SoFlatScreen, MultiPipe provides an SoScreen node in its configuration file. By providing the coordinates of one or more screens, you can display images within immersive environments such as CAVEs, curved screens, head-mounted displays, and others.

Tracking

MultiPipe now includes a set of classes interfacing to the widely used "trackd" library from VRCO (www.vrco.com). Trackd provides access to a wide variety of tracking systems and input devices for support of head and hand tracking in immersive environments.

MultiPipe will dynamically load the trackd library if the application attempts to use the MultiPipe tracking ability. The application does not need to link against libTrackdAPI. The node SoTracker in the new configuration file specifies the shared memory keys to access the tracker data.

Eye-per-Pipe Stereo

MultiPipe can render the left view and the right view of a scene using different pipes. See the SoFlatScreen config file node.

Edge Overlap Settings

Projection systems often overlap the images they are displaying. MultiPipe allows you to adjust the edges of the windows in order to accommodate projection systems that overlap the images that they are displaying.

New Configuration File Format

MultiPipe now uses the Open Inventor file format for its configuration file. The nodes used within the configuration file are SoMPConfig, SoFlatScreen, SoScreen, and SoTracker.

NOTE: The old file format is no longer supported.

Interface

MultiPipe now uses a cursor mechanism that updates the cursor on all MultiPipe windows automatically. It uses a similar mechanism to create the popup menu for each MultiPipe window.

It is possible to raise and lower the main viewer (i.e., the GUI) with the Page Up and Page Down keyboard keys. This is useful when the configuration file defines full screen MP windows. If the GUI happens to be hidden by the rendering windows, you can use Page Up to display the GUI on top of the display, and Page Down to hide the GUI.

MultiPipe "Inside" Mode Removed

Previously, MultiPipe allowed the creation of several sub-widgets within the viewer. This mode in no longer supported. The MultiPipe default behavior is to create MP windows outside the viewer. However it is still possible to tell MultiPipe to behave like a regular viewer and this mode now has the same performance as the regular viewer class.

MultiPipe 1.1 (March 2002)