Zspace-config

From Immersive Visualization Lab Wiki
Jump to: navigation, search

Contents

Configure a zSpace Device for CalVR in Linux

Enabling Active Stereo

  • Nvidia documentation of stereo modes: /usr/share/doc/NVIDIA_GLX-1.0/README.txt
  • Enable stereo:
    • sudo vi /etc/X11/xorg.conf
    • in Section "Screen": add Option "Stereo" 3
    • Create a new section like this:
Section "Extensions"
    Option "Composite" "off"
EndSection
  • Run sudo nvidia-settings: verify that the refresh rate is 120 Hz
  • "glxinfo -t" must show a few modes with the stereo flag set to 1
  • Test with "glxgears -stereo"
  • If it doesn't work, look for clues in /var/log/Xorg.0.log

CalVR Screen Configuration

The zSpace has a resolution of 1920x1080 pixels. The active screen area is 521x292 millimeters. The display is tilted 30 degrees from the horizontal axis (=60 degrees from the vertical). We want the world coordinate system's origin to be in the center of the screen. The center of the screen is about 120 millimeters above the table the zSpace sits on.

<ChannelConfig>
  <Channel width="1920" height="1080" left="0" bottom="0" comment="Main" channel="0"
   stereoMode="QUAD_BUFFER"  windowIndex="0"  name="0"  />
</ChannelConfig>

<WindowConfig>
  <Window width="1920" comment="Main" window="0" pipeIndex="0" height="1080" 
   left="0" bottom="0" name="0" decoration="false" quadBuffer="true" />
</WindowConfig>

<ScreenConfig>
  <Screen width="521" comment="Main" h="0" originX="0" originY="0" originZ="0" 
   height="292" p="-60.0" r="0.0" name="0" screen="0" />
</ScreenConfig>

<NumPipes value="1" />
<NumScreens value="1" />
<NumWindows value="1" />

<SceneSize value="521" />
<ViewerPosition x="0" y="-450" z="300" />
<EyeSeparation value="on" />
<Stereo value="true" />
<Stereo separation="64" />

CalVR Tracker Configuration

The origin of the tracking coordinate system is 350 millimeters above the center of the screen, and 230 millimeters in front of it, with no offset to the left or right.

The origin of the stylus' local coordinate system is in its front tip. Its orientation is such that the stylus points straight forward, with the cable leaving it on its bottom.

The origin of the glasses' local coordinate system is such that the lenses point straight forward like one would wear them on one's head.

<Input>
  <TrackingSystem0 value="VRPN" >
    <Orientation h="0" p="90" r="0" />
    <Offset x="0" y="-230" z="350" />
    <NumBodies value="2" />
    <NumButtons value="3" />
    <VRPN>
      <Server value="Tracker0@skarn.ucsd.edu" />
    </VRPN>
    <Body0>   <!-- Head -->
      <Orientation h="0" p="0" r="0" />
    </Body0>
    <Body1>   <!-- Hand -->
      <Orientation h="0" p="-90" r="0" />
      <Offset x="0" y="0" z="0" />
    </Body1>
  </TrackingSystem0>

  <NumHeads value="1" />
  <NumHands value="1" />
  <Head0Address system="0" body="0" />
  <Hand0>
    <Address system="0" body="1" />
    <ButtonMask system0="0x03" system1="0x00" />
  </Hand0>
</Input>

CalVR Menu Configuration

To put the menu in a convenient location at a good size use the following settings.

 <MenuSystem type="BOARDMENU" useHints="false">
    <BoardMenu>
      <Position distance="300" />
      <Scale value="0.3" />
      <Buttons select="0" open="1" />
      <Trigger value="DOUBLECLICK" />
    </BoardMenu>
 </MenuSystem>