MultiGen-Paradigm VSG Model Viewer

Online Help

 

 

This document describes the usage and options of the MultiGen-Paradigm Vega Scene Graph (VSG) Model Viewer.  The Vega Scene Graph Model Viewer provides functionality to view OpenFlight™ and Vega Scene Graph Binary™ (VSB) models and small databases.   The viewer can also be used to visualize image files of the following formats:  5551, bmp, ico, gif, jpc, jpg, jpeg, pcx, png, ppm, raw8, raw16, raw32, sgi, rgb, rgba, int, inta, tiff, dds, ct.

 

Disclaimer

 

This application is provided as is, without warranty of any kind and its use is governed by the MultiGen-Paradigm Limited End User License Agreement.

 

Contents

 

Getting Started

Command Line Parameters

Key Bindings

Mouse Bindings

The Scene Graph Overlay

Motion Models

Tools Menu

Load Options

 

Getting Started

The VSG Model Viewer may be started in one of three ways :

  • By double-clicking the executable.  When the Viewer is started in this mode the user is expected to load a model via the File menu or by using the ALT+L keyboard shortcut.
  • By dragging a valid file onto the executable.
  • Via the command line.  If the utility is started from the command line  with one or more parameters, it will process those parameters before initializing the GUI.

   

When started in GUI mode, the user is presented with a full-screen window. The window has three main components, namely, the Menu Bar, the Properties Pane, and the Rendering Window.

The Menu Bar is located along the top of the application and provides system-level controls for the application, including the ability to load new models, select loading options, and invoke this online help document.

The Properties Pane is located along the left side of the application, and provides controls for the Rendering Window.

The Rendering window is the central component of the application and it is responsible for rendering loaded content.

 

 

Command Line Parameters

The VSG Model Viewer executable accepts the following command-line parameters:

     /?           - Displays the usage and parameter list information for the utility.

    <file>      - Load the specified file on startup

    -p [x y z]  - Specify an initial translation for the observer in cartesian coordinates

    -r [h p r]   - Specify an initial rotation for the observer

Key Bindings

The VSG Model Viewer registers the following keyboard shortcuts:

  • ALT+O     - Open a file
  • F1        - Show this help
  • F2        - Toggle Properties Pane
  • F3        - Toggle Fullscreen Mode
  • F4        - Set Loading Options
  • F5        - Show the Debug Output Pane
  • F6        - Toggle the Debug Notification Level
  • F11       - Show application information
  • t         - Toggle texture on/off
  • w         - Toggle wireframe on/off
  • r         - Toggle transparency on/off
  • n         - Toggle normals on/off
  • x         - Toggle motion model between UFO and Trackball
  • s         - Toggle forward through the statistics overlay pages
  • S         - Toggle backward through the statistics overlay pages
  • l         - Toggle forwards through the lighting modes (Eye, Sun, OFF)
  • L         - Toggle backwards through the lighting modes (Eye, Sun, OFF)
  • g         - Toggle Scene Graph overlay
  • b         - Toggle bounding sphere highlight for Scene Graph overlay
  • d         - Increase the Time of Day lighting
  • D         - Decrease the Time of Day lighting
  • Escape    - Exit the VSG Model Viewer

 

The controls listed above are also available via either the Menu Bar or the Properties Pane.

 

 

Mouse Bindings

  • Mouse Scroller - increase/decrease motion model velocity
  • Left Button + Middle Button + Right Button - recenter the motion model to its initial position.

 

 

The Scene Graph Overlay

The Scene Graph overlay provides the user with a visual representation of the loaded scenegraph as well as debugging functionality for nodes, geometry, and state.  The overlay can be enabled either by checking the "Show Graph" checkbox at the bottom of the Properties Pane, or via the 'g' key. 

Hovering over a node will display the node's name if one is available, highlight the node's sub-graph, and cause the overlay to draw the node's bounding spheres in a red highlight.   Alternatively, the user can choose to highlight the node's geometry by either unchecking "Highlight Bounds" checkbox at the bottom of the Properties Pane, or via the 'b' key.

Nodes displayed in the Scene Graph overlay can be expanded or collapsed by hovering over them and using the middle mouse button.  Expanding a node will present its children in the Scene Graph overlay.

Pressing the CTRL key while hovering over any node will present information relevant to that node.  Pressing both the CTRL and ALT (CTRL+ALT) keys simultaneously while hovering over a vsGeometry node will present information relevant to that geometry's state attributes.

Right-clicking on a node will bring the observer to that node's geometry.

Left-clicking on a piece of geometry will center the Scene Graph overlay on the corresponding node.

Left-clicking on blank space in the view will re-center the Scene Graph overlay from the root node.

 

Motion Models

    Trackball

      The Trackball motion model is selected by default when the VSG Model Viewer is started.  The model is controlled as follows:

            Spin (Heading and Pitch) - Middle Mouse Button + move mouse

            Spin (Roll) - Middle Mouse Button + SHIFT + move mouse

            Translate in the XZ Plane - Left Mouse Button + move mouse

            Translate in the Y Axis    - Right Mouse Button + move mouse

      Additionally, the trackball motion model allows the ability to "throw".  This can be achieved by performing any of the functions

      listed above, and releasing the mouse buttons while continuing to move the mouse in a quick "throwing" motion.       

      The Trackball motion model can be reset to its initial settings by pressing all three mouse buttons simultaneously.

    UFO

      The UFO motion model can be selected via the Motiol Models pull-down menu in the Properties Pane or via the 'x' keyboard

      shortcut.  The mouse position on the screen dictates the direction of motion.

           Translate Forward      - Left Mouse Button

           Translate Backward    - Right Mouse Button

           Rotate Heading Left   - move mouse left

           Rotate Heading Right - move mouse right

           Rotate Pitch Up         - Move mouse down

           Rotate Pitch Down     - Move mouse up

     The UFO motion model can be reset to its initial settings by pressing all three mouse buttons simultaneously.

The Tools Menu

Selecting the Tools menu provides the user with three menu items, namely: Load Options, Debug Output, and Notification Level. Selecting the Load Options menu item displays the Load Options Menu.  The Load Options Menu is subdivided into six sections.  Each of these sections, and their respective options is described below. A brief explanation for each option is also provided in the options' rollover tool-tip.  Selecting the Debug Output menu item displays the Debug Output pane.  This pane contains a listing of notification messages produced by the runtime. Selecting the Notification Level menu item displays a submenu that lists the five notification level modes.  These modes control the amount of information provided in the Debug Output pane.

 

 

 

Load Options

Loader Options Submenu:

The Loader Options submenu contains options that are specific to the loading process for supported geometry file formats.  These are configuration items for supported loaders used when the geometry files are read, prior to conversion to the VSB format.

 

Combine Light Points -

If selected, the OpenFlight loader combines pre-version 15.8 OpenFlight Light Point records, found at the leaf level of the OpenFlight hierarchy that share the same state, into a single vsLightPoint/vrLightPoint pair.

If this feature is selected, then the OpenFlight loader combines light points that only have a single vertex with other such "free standing" light points that share the same state. Any strings, or light point beads that have multiple vertices are not combined, and retain their names, as specified in the OpenFlight description. In general, light point names are preserved for all lightpoints that are not artificially combined by the OpenFlight loader.

If the combine light points feature is not selected then every light point bead found while parsing the OpenFlight description is converted into a separate vsLightPoint/vrLightPoint pair. All (non-generic) light point bead names are preserved unless the FLT_PRESERVE_GENERIC_NAMES property is enabled, in which case ALL light point bead names make their way to a vsLightPoint. Generic names are those automatically generated by Creator (for lightpoints these include those with the name pattern lp #* where the #* is any repetition of the digits 0..9). This attribute is checked by default.

Combine LODs -

If selected, the VSG loaders will combine vsLOD nodes at the same level in the scene graph hierarchy if they share a common center and have adjacent switch ranges into a single vsLOD node.  Combining LODs reduces the number of “distance to the eyepoint” tests required at CULL time to determine which child of a LOD is currently visible, thus improving performance.  This attribute is enabled by default.

Create Animations -

If selected, VSG loaders will create flipbook animations wherever possible.  This attribute is enabled by default.

Ignore DOF Constraints -

If selected, VSG loaders will ignore setting vsDOF::Constraint structures on any vsDOF nodes created.  This option allows for backwards compatibility with runtimes that do not explicitly support constraints on Degree of Freedom objects.  This attribute is disabled by default.

Preserve External Reference Flags -

If selected, VSG loaders will honor the settings provided for any external references.  In the specific case of the OpenFlight(tm) loader, it will honor the external reference flags for material, texture, shader, and color such that whatever is specified in the parent file will be performed in the child.  If disabled then the various palettes declared locally in each child will be used for loading.  This attribute is enabled by default.

Preserve Generic Names -

If selected, VSG loaders will preserve the names of generic nodes.  These, in turn will be preserved by the clean traversal.

In the specific case of the OpenFlight(tm) loader generic names are defined to be those which are automatically assigned by the modeler package.  These follow the naming convention:

X#* where X can be any of the characters : o,l,g,d,p and the #* is any repetition of the digits 0..9.

Enabling this feature will generally increase the size of the scene graph without providing any visual benefit.  Thus, the typical net result is a decrease in performance.

This attribute is disabled by default.

Preserve Generic Nodes -

If selected, VSG loaders will reserve all nodes that have been uniquely named.  These, in turn will be preserved by the Clean traversal.

Enabling this feature will generally increase the size of the scene graph without providing any visual benefit.  Thus, the typical net result is a decrease in performance.   However preserving generic nodes may be necessary in the event that the final intent was to find a named node in a specific sub-graph.

This attribute is disabled by default.

Preserve Quads -

If selected, the OpenFlight loader preserves any polygons that contain four vertices at each leaf level, and subsequently generate a vrGeometry with QUAD primitive types to contain all such polygons. It is important to note that quadrilaterals with different states will be split into separate vrGeometry records. This attribute is disabled by default.

All Geometries Lit -

If selected, the OpenFlight loader enables lighting on all vrState instances generated. There are two side-effects to this. The first is that face normals are automatically computed for faces that do not have normals. Note: These FACE normals may break contiguous meshes generated by the VSG GeoBuilder because the loader does not have enough information to generate VERTEX normals. The second side effect is that a "default" vrMaterial is assigned to all vrState objects generated for geometry that has a material index of -1 specified in the OpenFlight description.  This attribute is disabled by default.

Blend Diffuse Material Color -

If selected, the OpenFlight loader blends the material diffuse color with all vertex and face colors on geometric primitives (polygon and mesh records) that have lighting enabled (Lit or Lit-Gouraud).

This attribute is disabled by default.

Monochrome -

If selected, the OpenFlight loader will convert all color values encountered at load time to a monochrome equivalent using the formula :m =  (R+G+B)/3.

This attribute is disabled by default.

Units -

This pull-down menu allows the selection of the native units of the runtime.  By default the native units are set to Meters.  All incoming geometry is scaled to match these units.  For example, if an OpenFlight model were modeled in feet, and the native unit of the runtime were meters, then the whole model would be scaled by a factor of approximately 0.3048 prior to being converted to VSB.

 

Builder Options Submenu:

The Builder Options submenu contains options that are specific to the manipulation of geometry at load time.  Specifically, builder options alter the optimization of attribute array bindings, triangle strip lengths, and the optimization of individual triangles into triangle strips.  The builder options also allow overrides for the generation of vertex normals.

 

Collapse Bindings -

If selected, then after the Optimize Geometry step has been completed, then the Builder will attempt to collapse the bindings for color and normal attribute arrays from per-vertex to per-primitive and then from per-primitive to overall wherever possible.  This optimization minimizes the amount of data passed down the graphics pipeline in form of attribute arrays, thus improving performance.

This attribute is enabled by default.

Collapse Triangle Strips -

If selected, then after the Optimize Geometry step has been completed, then the Builder will attempt to collapse all triangle strip primitives in the provided geometry node into a single degenerate triangle strip.  This optimization minimizes the number of separate geometric primitives that need to be pushed down to the graphics pipeline each frame, thus improving performance.  This option differs from the Collapse Triangle Strips option found in the Builder Options page because it considers only those geometries that have been merged together by the Cleaning Traversal (during the Merge Geometries step.)

This attribute is enabled by default.

Optimize Geometry -

If selected, builder performs an in-place optimization of the vrGeometry. The primitive types that can be optimized are converted into triangle strips. These include :

 ·      vrGeometryBase::PRIMITIVE_TRIANGLE

 ·      vrGeometryBase::PRIMITIVE_TRIANGLE_STRIP

 ·      vrGeometryBase::PRIMITIVE_TRIANGLE_FAN

 ·      vrGeometryBase::PRIMITIVE_QUAD

Most graphics accelerators are optimized for rendering triangle strip primitives, so converting to triangle strips can result in a performace increase. This attribute is enabled by default.

This attribute is enabled by default.

Normal Mode –

This pull-down menu allows the user to either preserve or regenerate the vertex normals specified in the geometry file.  In the event that the user wishes to regenerate the normals, three regeneration modes are provided:

    Regenerate Per-Vertex                     : Regenerates per-vertex normals.

    Regenerate Per-Primitive                 : Regenerates per-primitive normals.

    Regenerate Oriented Per-Vertex      : Regenerates per-vertex normals using the vertex order to orient the normals.

 

The default value is to preserve the vertex normals specified in the geometry file.

 

Post Load Options Submenu:

The VSB Options submenu contains options that control optimizations performed after the input geometry file is loaded.  

Clean Graph -

If selected, a clean traversal is applied to the geometry after load. It traverses down the scene graph hierarchy starting with the root node and cleans the hierarchy of the scene graph.

Cleaning involves the removal of all unnecessary nodes. These include:

All un-named nodes that only parent one child node.

All static transformation whose matrix is the identity matrix that only parent one child.

All vsGeometryBase nodes that do not have a vrGeometryBase instance attached.

Static transformations, whose matrix is the identity matrix, and that parent more than one child, are replaced by a generic vsNode.

vsDecal, vsDOF, vsLight, vsLOD, vsAnimation, and vsSwitch nodes (and their derivations) remain un-affected by the clean traversal.

Cleaning can improve performance by shortening traversal times, and decreasing the size of the scenegraph.

This attribute is enabled by default.

 

Flatten Graph -

If selected, a flatten traversal is applied to the geometry after load. It traverses down the scene graph hierarchy starting with the root node and 'flattens' transformations in the hierarchy of the scene graph. Coordinates and normals contained in leaf geometry nodes (vsGeometry), vsBillboard, and vsLightPoint are transformed by any inherited static transformations (vsTransform with static-enable flag set). vsTraversalFlatten automatically clones any vsNode or vsGeometry that has multiple references. Specifically, if the node has multiple parents, in which case node and its entire subtree will be cloned. If a vsTransform with static-enable flag unset is encountered, vsTraversalFlatten inserts a vsTransfrom with static-enable flag set between the vsTransform with static-enable flag unset and its parent.

Flattening can substantially improve performance, however, it can also increase the size of the scenegraph since it copies instanced nodes and geometry.  Flattening does not remove vsTransforms that have the static-enable flag set from the hierarchy; instead it sets their transformation matrix to the identity matrix. For improved traversal performance, these flattened vsTransform nodes should be removed from the hierarchy. Ideally this is accomplished using vsTraversalClean.

Merge Geometries -

If selected, this option will cause leaf-level geometry nodes to be merged together if they possess similar state and reside under the same parent.

        It should be noted that this option is only effective if the Clean Graph post-load option is also enabled.

         This option will not affect any leaf-level geometry nodes that :

Have been named.

Contain populated vuUserDataList(s)

Have multiple vsRepresentations. 

Contain named vrGeometry structures.

Contain named vrGeometry structures that have populated vuUserDataList(s)

 

Only the first vsRepresentation is merged at this time.

Merging geometries can significantly improve runtime performance by shortening traversal times, and decreases the size of the scene graph at the leaf level.

 

Collapse Merged Bindings -

If selected, then after loading has been completed and if the Clean Graph post-load option is also enabled, then the Cleaning traversal will attempt to collapse the bindings for color and normal attribute arrays from per-vertex to per-primitive and then from per-primitive to overall wherever possible.  This optimization minimizes the amount of data passed down the graphics pipeline in form of attribute arrays, thus improving performance.  This option differs from the Collapse Bindings option found in the Builder Options page because it considers only those geometries that have been merged together by the Cleaning Traversal (during the Merge Geometries step.)

This attribute is enabled by default.

Collapse Merged Triangle Strips -

If selected, then after loading has been completed and if the Clean Graph post-load option is also enabled, then the Cleaning traversal will attempt to collapse all triangle strip primitives in leaf-level geometry nodes into a single degenerate triangle strip.  This optimization minimizes the number of separate geometric primitives that need to be pushed down to the graphics pipeline each frame, thus improving performance. 

This attribute is enabled by default.

 

Palette Options Submenu:

The Palette Options submenu contains options that allow for the creation of an external “Palette” file that contains for the output VSB file to reference.  The palette file contains all unique instances referenced by the geometry.  Palette files are usually created for datasets where many geometry files share the same resources.  Using a palette file decreases the amount of disk space required to store the duplicate resources, and optimizes the loading times for the dataset.

 

Input Palette File -

This text field allows the user to specify a file name for use as the Palette File for input geometry files.

 

Geometry Options Submenu:

The Geometry Options submenu provides the ability to select rendering-specific options for the loaded geometry, such as enabling display listing. 

Search Path Options Submenu:

The Searchpath Options submenu provides the ability to specify the searchpath to be used during the conversion process for textures and external reference resolution.  Searchpaths can be added by using the purple ... button, and removed using the red minus button. 

 

 

 

MultiGen-Paradigm, Inc.

www.multigen.com

Toll-free: (877) 289-5670

vegaprime@multigen.com