Api.php: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
(emacs test)
(Create page ITK/Release_4/SimpleITK/mwdoc_test/0.1/test1)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
* this is something else
Contents
 
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">
    <!--
      The only supported Type values are "server", "dataserver" or "renderserver".
      This controls which executable this configuration is applicable to.
      There can be multiple <Process /> elements in the same pvx file.
      ------------------------------------------------------
      |  Executable    | Applicable Process Type          |
      |  pvserver      | server, dataserver, renderserver |
      |  pvrenderserver | server, renderserver            |
      |  pvdataserver  | server, dataserver              |
      ------------------------------------------------------
    -->
    <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">
      <!--
        There can be multiple <Machine> elements in a <Process> element,
        each one identifying the configuration for a process.
        All attributes are optional.
        name="hostname"
        Environment: the environment for the process.
        LowerLeft|LowerRight|UpperLeft : CAVE configuration parameters applicable
                                          for versions 3.8 or latter only.
      -->
    </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 <code>PARAVIEW_USE_MPI</code> and <code>PARAVIEW_USE_ICE_T</code>
* run the servers using the pvx file: <code>mpiexec -np 2 pvserver cave.pvx</code>
* 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">
  <!-- 2 render windows will be created on the machine Erna:
      the first rendering has a camera looking forward,
      the second rendering has a camera looking backward -->
  <Machine Name="Erna"
          Environment="DISPLAY=:0"
          <!-- Camera looks forward:
                dx = 2, dy = 2, dz = -2
                Z = -2 defines the view angle  -->
          LowerLeft="-1 -1 -2"
          LowerRight="1 -1 -2"
          UpperLeft="-1  1 -2" />
  <Machine Name="Erna"
          Environment="DISPLAY=:0"
          <!-- Camera looks backward:
                dx = -2, dy = 2, dz = 2
                Z = 2 defines the distance from the camera to the view plane  -->
          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.

Latest revision as of 19:37, 1 February 2013

Contents