All nVis HMDs are supported natively by Vizard.
There are two steps required to fully support both of these devices. First, you must set your graphics adapter to the correct resolution (i.e., 2560x1024 for both left and right eye display inputs). Second, you need to setup the correct stereo and projection settings in Vizard by using the included nvis module.
To drive independently the left and right eye inputs, you'll first need to adjust your adapters output to support a dual monitor configuration. For nVidia-based hardware, this is most frequently handled by enabling the "horizontal span" mode.
Next, you can either use the Window's control panel to adjust your display resolution to 2560x1024, or you can choose to have Vizard do this for you while the simulation runs and automatically return the resolution to your previous settings using the viz.setDisplayMode command.
Vizard includes an nvis module which will setup the correct stereo and projection settings for your nVis HMD. All you need to do is import this module and specify which HMD model you are using. You must also start your script in fullscreen mode by passing the viz.FULLSCREEN flag to viz.go(). For example, you would use the following code with an nVisor SX:
The following table describes all the nVis displays supported by the nvis module:
Model |
Vizard code |
nVisor MX/60 |
nvis.nvisorMX60() |
nVisor MX/90 |
nvis.nvisorMX90() |
nVisor MX/120 |
nvis.nvisorMX120() |
nVisor MT/60 |
nvis.nvisorMT60() |
nVisor SX/60 |
nvis.nvisorSX() |
nVisor ST/60 |
nvis.nvisorST() |
nVisor SX/90 |
nvis.nvisorSX90() |
nVisor SX/111 |
nvis.nvisorSX111() |
nVisor SX/120 |
nvis.nvisorSX120() |
Virtual Binocular SX |
nvis.binocularSX() |
Virtual Binocular SV |
nvis.binocularSV() |
Scout | nvis.scout() |
All the above HMD constructors accept the following optional keyword arguments:
Argument |
Description |
Default |
stereo |
The stereo mode to use with the HMD |
viz.STEREO_HORZ |
cluster_stereo |
A tuple containing the cluster machines to use for the left/right eyes, respectively. For example, if you are running a cluster where the master machine renders the left eye and the first client renders the right eye, you would specify (viz.MASTER,viz.CLIENT1) as the value. |
None |
window |
The window to apply the stereo settings to |
viz.MainWindow |
leftVerticalShift |
The number of degrees to vertically shift the left eye frustum. If None, the value will be initialized to the nvis.leftVerticalShift cfg option, which defaults to 0. This is normally used to adjust for misaligned HMDs. |
None |
rightVerticalShift |
The number of degrees to vertically shift the right eye frustum. If None, the value will be initialized to the nvis.rightVerticalShift cfg option, which defaults to 0. This is normally used to adjust for misaligned HMDs. |
None |
leftHorizontalShift |
The number of degrees to horizontally shift the left eye frustum. If None, the value will be initialized to the nvis.leftHorizontalShift cfg option, which defaults to 0. This is normally used to adjust for misaligned HMDs. |
None |
rightHorizontalShift
|
The number of degrees to horizontally shift the right eye frustum. If None, the value will be initialized to the nvis.rightHorizontalShift cfg option, which defaults to 0. This is normally used to adjust for misaligned HMDs. |
None |
leftRollShift
|
The number of degrees to roll the left eye frustum. If None, the value will be initialized to the nvis.leftRollShift cfg option, which defaults to 0. This is normally used to adjust for misaligned HMDs. |
None |
rightRollShift |
The number of degrees to roll the right eye frustum. If None, the value will be initialized to the nvis.rightRollShift cfg option, which defaults to 0. This is normally used to adjust for misaligned HMDs. |
None |