Api.php

From KitwarePublic
Revision as of 19:31, 16 February 2011 by Nikhil (talk | contribs) (head tracking and display)
Jump to navigationJump to search
  • Basic CAVE support is provided in paraview. The support is in terms of managing HeadTracking and Display Configuration

VR support in ParaView is provided by adding mechanisms to read system can be seen as a Input/Output manager. The inputs in our case can range from keyboard/mouse to Tracked inputs from a VRPN server. can be simple keyboard/mouse based or complex using a combination of Tracked, Analog and Button based devices. Outputs typically consists of multiple displays organized to configurations to enDisplays like the CAVE can be formed in various configurations. In ParaView these configurations can be specified using the PVX configuration XML file.


VR support in ParaView uses the Client-Server mechanism


Where to specify this?

  • The CAVE support leverages the Render-Server capability and displays are managed by individual processes on the server side.
  • pvx file can be specified as the last command line argument for any of the server processes.
  • Typically the pvx file is specified for all the executables whose environment is being changed using the pvx file. 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 must be present on all nodes.

Structure

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

 <Process Type="server|dataserver|renderserver">
   <Machine name="hostname"
            Environment="DISPLAY=m1:0"
            LowerLeft="-1.0 -1.0 -1.0"
            LowerRight="1.0 -1.0 -1.0"
            UpperLeft="-1.0  1.0 -1.0">
   </Machine>
 </Process>

</pvx> </source>

  • Only 2 vectors ([LowerRight - LowerLef] and [UpperLeft - LowerLeft]) are needed, the third vector is computed from these 2.

Cave Rendering

Instructions

  • Turn on PARAVIEW_USE_MPI and PARAVIEW_USE_ICE_T
  • run the servers using the pvx file: mpiexec -np 2 pvserver cave.pvx
  • start and connect a client

Notes

  • See below for an example of a cave configuration file

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

<Process Type="client" />
<Process Type="server">
 <Machine Name="Erna"
          Environment="DISPLAY=:0"
          LowerLeft="-1 -1 -2"
          LowerRight="1 -1 -2"
          UpperLeft="-1  1 -2" />
 <Machine Name="Erna"
          Environment="DISPLAY=:0"
          LowerLeft="1 -1 2"
          LowerRight="-1 -1 2"
          UpperLeft="1  1 2" />
 </Process>

</pvx> </source>

  • See vtkCaveRenderManager::ComputeCamera for more information on how the coordinates are used to configure the cameras
  • The rendering on the server is full screen by default. If you want the windows to be smaller for debugging, set the environment variable PV_ICET_WINDOW_BORDERS=1 on the client machine.