ParaView
Overview
The NVIDIA Omniverse™ ParaView Connector offers a toolkit for ParaView users to send and live sync their model(s) to an NVIDIA Omniverse™ Nucleus Server, or alternatively locally output them to USD, along with OpenVDB in case of volumes. As a result, a user will be able to edit and sync their ParaView data with any OMNIVERSE® Connect applications, or just import it into applications supporting USD or OpenVDB. Now, depending on the use case, ParaView users can choose the workflows and pipelines that work best for their needs while maintaining up to date revisions for all downstream consumers of their work.
See the Installation Instructions and Test the connector using the ParaView wavelet source for a walk through in configuring and using the connector. A condensed list of Features is also available.
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:
There is one button each 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 or 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 over 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 over 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 before. 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