HVR toolkit is an extension of H3D API. The acronym can stand for "H3D Virtual Reality" or "Haptic Virtual Reality" and this is a package provides a few nodes required to set up a Virtual Reality environment (VR) with H3D API. It supports a range of tracking standards and viewpoints suitable for different types of VR systems.
For the successful deployment of VR with H3D API there are three types of components provided by this package: viewpoint nodes that implement Spatial Monitor VR and Head Mounted Display, respectively, a few tracker nodes, and scripts that helps in the setup of the VR scene.
There are two different viewpoint types used in VR: Spatial Monitor and Head Mounted Display. These behaviours are implemented by the SMViewpoint and the HMDViewpoint, respectively.
A viewpoint is typically associated with a tracker that specifies the position and orientation of the user's head. There are several tracker nodes available in this package that can be used for this purpose, but also for other purposes, for example controlling objects or non-haptic interaction.
- GadgetTracker, using the Gadgeteer system of VRJuggler to read tracker data
- MarkerTracker, using the ARToolkit system to read markers from a camera as tracker data
- InterSenseTracker, using the InterSense API to read their supported tracker data
- KinectHighPointTracker, a very simplistic tracker using Freenect API to read Kinect data for 3 DOF head tracking
- VRPNTracker, setting up a VRPN client that read tracker data from any VRPN compatible tracker systemls py
VRPNTracker is the most powerful interface since it allows access to all tracker systems supported by VRPN.
It is recommended that some specific settings are changed in H3D for the system to follow the principles of VR, for example not having haptic devices follow the viewpoint since devices, viewpoint and display in VR are all defined in the same coordinates system. These settings are automatically corrected by the script CorrectViewpoint.py
There are also several scripts for navigation and for interaction. Read more about these in the page about Candy.