Functionality#

Below you will find a short description of the components which NVIDIA Omniverse™ ParaView Connector Plugin adds to ParaView. They consist of a custom Omniverse Connector render view, two filters, plus a toolbar in the View->Toolbars menu option which is enabled by default:

  • “Omniverse” Toolbar

Found under View->Toolbars, the NVIDIA Omniverse™ ParaView Connector plugin can be interacted with through an interface similar to other NVIDIA Omniverse™ Connect applications:

UI Overview

There is a button for:

  • Signing into an Omniverse Nucleus server

  • Bringing up the settings panel

  • Opening the current scene in an Omniverse application of choice

  • Showing the documentation

  • Viewing information about the plugin.

  • “Omniverse Connector” Render View

The Omniverse Connector render view works just like a normal render view, except that everything visible within this render view is sent to an NVIDIA Omniverse™ Nucleus server, or a local USD file. Specifically, for all visible ParaView actors in the view’s pipeline, their render data arrays (such as point, normal, texcoord, and vertexcolor) or rendered volume fields will be converted to USD, and optionally sent to Omniverse. This render data will be collected for each timestep viewed by the user and stored in the USD, alongside the data of previously viewed timesteps - unless the actor’s data does not change over time.

The Omniverse Connector render view is required for the two filters mentioned below. This allows users to allow additional field arrays to be included within the output of the rendered models, or manually specify which arrays are time-varying for animated datasets.

  • “Omniverse Connector Pass Arrays” Filter

This filter functions exactly as the normal Pass Arrays filter found in ParaView, but instead specifies exactly which field arrays of a dataset are transferred to Omniverse. By default the connector only sends render data arrays to Omniverse as explained above. Using the Pass Arrays filter permits you to extend that with any per-point or per-cell field array residing in your dataset. For surface geometry these arrays end up in the corresponding USD as primvars, but for volumes they are converted to grids in OpenVDB.

  • “Omniverse Connector Temporal Arrays” Filter

The Temporal Arrays filter defines which specific field arrays are time-varying - ie. obtain a separate copy of their data in USD or Omniverse at every single time step - and which arrays are uniform and therefore only have one copy of their data, applying to all timesteps. Enabling a checkbox in front of an array makes it time-varying; otherwise it is considered uniform. This is useful in a case where, for example, only the texcoord array changes from one timestep to another, and all other arrays stay the same. In such a situation, the connector cannot detect that the other arrays are uniform over timesteps, and will therefore generate a duplicate copy of data for every array at every timestep to be sent to Omniverse. With the Temporal Arrays filter, the user can avoid this data duplication on a per-array basis by explicitly defining arrays as uniform over all timesteps, so that they are not updated or duplicated if the user changes the timestep of the render view.

Features#

  • Supports client-server setups

  • Works with headless (EGL) ParaView servers

  • Works in multi-node (MPI) environments (see MPI environments)

  • Works in Python environments (see Usage with Python)

  • Can output to an Omniverse Nucleus server

  • Can convert to USD for local output, ascii, or binary

  • Supports Omniverse Live functionality for interactive updates of the output

  • Supports multiple connections/outputs at once

  • Supports color-mapped surface meshes and point clouds

  • Structured volume representations (see Volumes and OpenVDB)

  • Point datasets

  • Slice representations

  • Glyph representations, along with pipeline connection input for free choice of shape

  • Lines and (piecewise linear) curves

  • Animated data timesteps and animation cues, for all supported geometry types and volumes

  • Customizable per-timestep or uniform storage for mesh arrays, material parameters, and textures

  • Transfer of any point and/or cell field arrays

  • Custom naming of USD output

  • Opening scenes in other Omniverse apps from within ParaView

Known Limitations#

Synchronization with Omniverse#

  • The ParaView Connector only exports data out of ParaView to Omniverse, but by design does not allow for data to be imported into ParaView.

  • An Omniverse Connector render view within ParaView does not offer a choice whether to output to Omniverse or not. It will always do so.

    • Use a separate view in ParaView to have a view which does not propagate to Omniverse, or multiple separate views to output different parts of the scene to different locations.

  • For live behavior on timesampled data, it is recommended to generate all timesamples before enabling live mode.

Timesteps#

  • Kit applications only animate time series data with (approximately) whole-numbered timestep values.

    • Use the Usd Time Scale field in the Omniverse Connector section of the viewport Properties panel to apply a scale to the timesteps of all pipeline nodes, or…

    • …use a Temporal Shift Scale filter in ParaView to make sure that the timestep values being output are close to whole numbers (doesn’t have to be exact).

Geometry#

  • ParaView’s 3D Glyphs representation:

    • Shapes Line or 2D Glyph are not supported and fall back to an arrow shape.

    • Any center, orientation, or resolution parameters in ParaView’s left-hand side Properties panel for the selected shape are ignored.

      • For center and orientation, merge with a relevant array selection instead.

Materials#

  • Colormapped curves are not showing up with properly mapped colors in Omniverse USD Composer when using UsdGeomBasisCurves as USD representation.

    • This is a known bug in Omniverse USD Composer. Use the Tube filter to create meshed lines, or select UsdGeomPointInstancer for Lines Representation in the Omniverse Connector settings menu (see Settings Menu Explained).

Volumes#

  • Only structured volumes make it through the connector, which are converted to VDB before transfer into Omniverse.

    • Use the Resample To Image filter to transform volumes into structured volumes so that they can be converted.

Misc Features#

  • ParaView light kit information is not transferred to Omniverse. Instead, a single distant light is put into the scene by default.

  • Ray tracing cannot be enabled within the Omniverse Connector render view (use a separate view instead).

Version Specific#

  • Live synchronization with Omniverse USD Composer 2022.2.0 or higher is not possible with connector versions lower than 200.0.0.

  • In ParaView 5.10, the Pass Arrays and Temporal Arrays filters do not work on meshes of type vtkPartitionedDataSetCollection.

    • Use a “Merge Blocks” filter on the data before applying any of the two filters.

  • In ParaView 5.10, colormapped slice geometry can result in corrupted colors in Omniverse USD Composer, in case the number of vertices and triangles stays the same over timesteps, but their topology changes.

  • For ParaView 5.11, the Linux version of the connector may give an error upon loading (missing libvtkfreetype-pv5.11.so).

  • Up until Kit 106.1, colormapped curves and cylinders, or any shape from the glyph representation, are not showing up with properly mapped colors in Omniverse USD Composer.

    • This is a known bug in Kit applications; create meshes instead. For example, by using the Tube filter to create meshed lines, or by using a Glyph filter instead of the representation.

  • Up until Kit 106.1, connecting arbitrary primvars to the material inputs (see Working With Material Graphs) in a material graph within Omniverse USD Composer currently only works properly with mesh geometries.