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.
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.
The VSG Model Viewer may be started in one of three ways :
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.
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
The VSG Model Viewer registers the following keyboard shortcuts:
The controls listed above are also available via either the Menu Bar or the Properties Pane.
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.
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.
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 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.
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.
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.
If selected, VSG loaders will create flipbook animations wherever possible. This attribute is enabled by default.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The VSB Options submenu contains options that control optimizations performed after the input geometry file is loaded.
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.
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.
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.
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.
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.
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.
This text field allows the user to specify a file name for use as the Palette File for input geometry files.
The Geometry Options submenu provides the ability to select rendering-specific options for the loaded geometry, such as enabling display listing.
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.
Toll-free: (877) 289-5670