possible to change camera parameters like field of
view, panning, etc.
Inside Building Blocks & Data Resources, all
available behavioural Building Blocks are listed and
are ready to use, as well as a set of native Virtools
resources like images, sounds and so on as shown on
Figure 4.
Figure 3: Virtools Main Layout.
Finally in Level Manager & Schematic Window,
all the Level objects are listed in the Level Manager
section, allowing the programmer to access their
setup. It is also possible to create new scripts and
logical entities like Arrays, Groups, etc. In the
Schematic Window scripts are programmed by
filling them with BBs, Parameter Operations and
Variables as shown in Figure 5.
3 DEVICES INTEGRATION
Virtools standard version does not support the set of
immersive devices listed above, so it is necessary to
integrate them. This process is made using the
Virtools SDK and the devices specific Application
Programming Interfaces. New BB and Managers are
created with SDK using C++. To develop a new BB
it is necessary to establish the number of bIn/ bOut,
the number and type of pIn/pOut, types of properties
marks and define an execution function which has
the desired BB internal processing and bOut
activation. A Manager, manages data resources,
external communications, etc. The order through
which the managing process is performed must be
defined in a Manager. It may be done after or before
a frame is processed.
3.1 Polhemus Fastrak Integration
Polhemus Fastrak API programming interface,
FTAPI, allows the connection and communication
between the PC and tracker. After an established
connection, the programmer may request data such
as relative position in rectangular coordinates [x, y,
z] and orientation in Euler angles [Azimuth,
Elevation, Roll] of one of four possibly connected
receivers to a unique transmitter.
A single behavioural Building Block is
developed with FTAPI, which is responsible by
managing the trackers communication with the PC
and supply its data to the programmer. However,
this approach decreases drastically the applications
overall performance with frame rates falling down
from 60 to 5-10 fps. To overcome this lack of
performance, a Manager is created and made
responsible for the communication with the tracker
and supplying the requested data to a newly
developed BB, named TrackerBB The programmer
may change from which receiver he wants to obtain
tracking data inserting a valid receiver id into
StationId pIn as shown in Figure 6.
The Manager, before each frame is processed,
requests new data from the specified receiver and
make it available to TrackerBB to use it in a
composition. The tracking data from the BB may be
used through its pOuts which specify, from left to
right:
Vector with relative rectangular receiver
coordinates [x y, z]
• Receiver’s relative Azimuth angle
orientation
• Receiver’s relative Elevation angle
orientation
• Receiver’s relative Roll angle orientation
• Connection Status
• Tracker Debug Information
• Tracker internal latency time, first 32 bits
• Tracker internal latency time, last 32 bits
Using the BB - Manager Scheme increases the
frame rate up to 30 fps.
3.2 5DT Integration
A similar plug-in is developed for the data gloves. A
Manager is created with Virtools SDK and FGlove
API. As in the tracker, it manages the
communication and data flow from the gloves and a
newly developed BB named GloveBlock.
GloveBlock has two pIn: Mode and gloveId.
Mode indicates if the sensors outputs are raw or
auto-calibrated values. If raw data is selected the
values are given in a range of 0-4095 (12 bit
resolution) in which 0 is no sensor flexure and 4095
is total sensor flexure. In case calibrated values
GaDeVi -
Game Development Integrating Tracking and Visualization Devices into Virtools
315