Chapter 2. Building a configuration file from scratch

Table of Contents

Before you start: collecting information
Create a new configuration file
Decide on the origin
Configure trackers
Create position proxies
Creating Proxy Aliases (optional)
Configure other input devices
Creating Digital and Analog Proxies
Add User configuration
Add Displays
Create a DisplaySystem chunk
Define display windows
Additional features
Configuring Performer API features
Configuring audio features
Enabling dynamic reconfiguration
Logging performance data

VR Juggler includes a number of sample configuration files for common VR systems. These files are based on the systems readily available to the VR Juggler developers and our contributors, but obviously we cannot provide a comprehensive set of example configurations - the field is simply too diverse.

In this section we will demonstrate how to create a VR Juggler configuration file from scratch, describing each element and suggesting an order of steps to setup a new VR system in the easiest possible way. Our example system will be a four-walled projection system similar to Iowa State University's C4 device. After the step-by-step example, we will also briefly describe major variations, such as the differences necessary to create a configuration for a Head-Mounted Display, and some specific examples of setting up various input devices.

Before you start: collecting information

Configuring a VR system is much easier if all the necessary information is readily at hand. Sometimes, though, it can be hard to figure out exactly what is needed. The following non-exhaustive list suggests some of the data that it may be helpful to collect:

  • Display Information. This includes knowing where your displays are in space. In projection-based VR systems, this will include the positions of each screen. For a head-mounted display, it would be the positions and sizes of the display surfaces relative to the positions of the users' eyes. This also includes knowing how the displays of the host computer map to the displays of the VR system - for example, the position and size of a graphics window needed to drive a given VR display.

  • Input Device information. This includes knowing what input devices you intend to use and how they are connected to the host computer. For some devices, this will be a serial port name and baud rate, for others it might be a network address and port number. Tracking systems, in particular, tend to have a large number of device-specific configuration options. For any tracking system, you will need to know the coordinate system its data uses.

  • Alternate configurations. Some VR systems can be used in a variety of ways. For example, you might have a desk with a movable display surface, or you may need to choose between mono and stereo display modes, or you may have a head-mounted display that supports multiple video aspect ratios. Since VR Juggler applications can load multiple configuration files, it may be helpful to create a "base" config file with the information that never changes, as well as several additional helper files that describe the components of the system that may be reconfigurable.

  • VjControl usage information. The VjControl program used to edit configuration files has many powerful capabilities. While it is designed to be easy to learn and use, it may be helpful to browse the VjControl User's Guide. The information in the Guide is also available via VjControl's help menu.