Immersive ParaView: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
(Initial version, still in progress.)
 
(Progress....)
Line 130: Line 130:
* ParaView has no concept of units.
* ParaView has no concept of units.
** Use tracker units as default unit for corner points values, eye separation and anything else that requires real world units.
** Use tracker units as default unit for corner points values, eye separation and anything else that requires real world units.
== Configure Input Connections ==
This section details the specification of VRPN or VRUI connections using the ParaView VR plugin's user interface.
=== Loading the VR plugin in ParaView ===
# Start the ParaView application.
# Load the VR plugin:
## Tools >> Manage Plugins...
## Select "VRPlugin", click "Load Selected".
## If the "VR Panel" shown below does not appear, show it by checking View >> VR Panel. [[File:VRPanel.png]]
=== Add a New Connection ===
## Click "Add" under "VR Connections".
## VRPN: [[File:VRAddVRPN.png]]
### Select "VRPN" as the connection type.
### Enter a name for the connection.
### Specify the address of the VRPN server in the form "<device>@<hostname/IP>".
### Add inputs by specifying their type (tracker, button, or analog), id #, and a unique identifier, then clicking the "+" icon. The identifier should be descriptive as it will be used when configuring interactions later.
### Click OK
## VRUI: [[File:VRAddVRUI.png]]
### Select "VRUI" as the connection type.
### Enter a name for the connection.
### Specify the hostname or IP address of the VRUI server.
### Specify the port that the VRUI server is using.
### Add inputs by specifying their type (tracker, button, or analog), id #, and a unique identifier, then clicking the "+" icon. The identifier should be descriptive as it will be used when configuring interactions later.
### Click OK
=== Configure Interactions ===

Revision as of 14:11, 12 March 2013

Overview

  1. Configure and build ParaView with the VR plugin enabled.
  2. Configuring the server display specification (.pvx file).
  3. Setup connections to input event streams.
  4. Launch pvserver.

Build ParaView

Follow regular build instructions from http://paraview.org/Wiki/ParaView:Build_And_Install. In addition following steps needs to be performed:

  • Install Qt (client) and MPI (client and server) as they are ParaView dependencies. If using VRPN to generate VR input events, make sure that it is built and installed as well.
  • When configuring cmake enable BUILD_SHARED_LIB, PARAVIEW_BUILD_QT_GUI, PARAVIEW_USE_MPI and PARAVIEW_BUILD_PLUGIN_VRPlugin .
  • Enable PARAVIEW_USE_VRPN or PARAVIEW_USE_VRUI (Apple/Linux only) depending on input event source you wish to use.
    • If VRPN support is enabled and the library is not installed in the default paths then VRPN_INCLUDE_DIR and VRPN_LIBRARY may also need be set.

Configuring Displays

The ParaView server is responsible for configuring displays. The display configuration is stored on a ".pvx" file.

ParaView has no concept of units and therefore user have to make sure that the configuration values are in the same measurements units as what tracker has producing. So for example if tracker data is in meters, then everything is considered in meters, if feet then feet becomes the unit for configuration.

Structure of PVX Config File

<source lang="xml"> <?xml version="1.0" ?> <pvx>

 <Process Type="server|dataserver|renderserver">
   <EyeSeparation Value="0.065"/> 
   <Machine Name="hostname"
            Environment="DISPLAY=:0"
            Geometry="1920x1080+0+0"
            FullScreen="0"
            ShowBorders="0"
            LowerLeft="-1.0 -1.0 -1.0"
            LowerRight="1.0 -1.0 -1.0"
            UpperRight="1.0  1.0 -1.0">
   </Machine>
 </Process>

</pvx> </source>

Example Config.pvx

  • The following example is for a six sided cave with origin at (0,0,0):

<source lang="xml"> <?xml version="1.0" ?> <pvx>

<Process Type="client" />
<Process Type="server">
<EyeSeparation Value="0.065"/>
 <Machine Name="Front"
          Environment="DISPLAY=:0"
          FullScreen="1"
          ShowBorders="0"
          LowerLeft=" -1 -1 -1"
          LowerRight=" 1 -1 -1"
          UpperRight=" 1  1 -1" />
 <Machine Name="Right"
          Environment="DISPLAY=:0"
          FullScreen="1"
          ShowBorders="0"
          LowerLeft="  1 -1 -1"
          LowerRight=" 1 -1  1"
          UpperRight=" 1  1  1" />
 <Machine Name="Left"
          Environment="DISPLAY=:0"
          FullScreen="1"
          ShowBorders="0"
          LowerLeft=" -1 -1  1"
          LowerRight="-1 -1 -1"
          UpperRight="-1  1 -1"/>
 <Machine Name="Top"
          Environment="DISPLAY=:0"
          FullScreen="1"
          ShowBorders="0"
          LowerLeft=" -1  1 -1"
          LowerRight=" 1  1 -1"
          UpperRight=" 1  1  1"/>
 <Machine Name="Bottom"
          Environment="DISPLAY=:0"
          FullScreen="1"
          ShowBorders="0"
          LowerLeft=" -1 -1  1"
          LowerRight=" 1 -1  1"
          UpperRight=" 1 -1 -1"/>
 <Machine Name="Back"
          Environment="DISPLAY=:0"
          FullScreen="1"
          ShowBorders="0"
          LowerLeft="  1 -1  1"
          LowerRight="-1 -1  1"
          UpperRight="-1  1  1"/>
 </Process>

</pvx> </source>

  • A sample PVX is provided in ParaView/Documentation/cave.pvx. This can be used to play with different display configurations.

Notes on PVX file usage

  • PVX file should be specified as the last command line argument of the server processes.
  • The PVX file is typically specified for all the executables configured in it. In case of data-server/render-server configuration, if you are setting up the environment for the two processes groups, then the PVX file must be passed as a command line option to both the executables: pvdataserver and pvrenderserver.
  • When running in parallel the file is read on all nodes; hence it must be present on all nodes.
  • ParaView has no concept of units.
    • Use tracker units as default unit for corner points values, eye separation and anything else that requires real world units.

Configure Input Connections

This section details the specification of VRPN or VRUI connections using the ParaView VR plugin's user interface.

Loading the VR plugin in ParaView

  1. Start the ParaView application.
  2. Load the VR plugin:
    1. Tools >> Manage Plugins...
    2. Select "VRPlugin", click "Load Selected".
    3. If the "VR Panel" shown below does not appear, show it by checking View >> VR Panel. VRPanel.png


Add a New Connection

    1. Click "Add" under "VR Connections".
    2. VRPN: VRAddVRPN.png
      1. Select "VRPN" as the connection type.
      2. Enter a name for the connection.
      3. Specify the address of the VRPN server in the form "<device>@<hostname/IP>".
      4. Add inputs by specifying their type (tracker, button, or analog), id #, and a unique identifier, then clicking the "+" icon. The identifier should be descriptive as it will be used when configuring interactions later.
      5. Click OK
    3. VRUI: VRAddVRUI.png
      1. Select "VRUI" as the connection type.
      2. Enter a name for the connection.
      3. Specify the hostname or IP address of the VRUI server.
      4. Specify the port that the VRUI server is using.
      5. Add inputs by specifying their type (tracker, button, or analog), id #, and a unique identifier, then clicking the "+" icon. The identifier should be descriptive as it will be used when configuring interactions later.
      6. Click OK

Configure Interactions