Please Select Your Location
Australia
Österreich
België
Canada
Canada - Français
中国
Česká republika
Denmark
Deutschland
France
HongKong
Iceland
Ireland
Italia
日本
Korea
Latvija
Lietuva
Lëtzebuerg
Malta
المملكة العربية السعودية (Arabic)
Nederland
New Zealand
Norge
Polska
Portugal
Russia
Saudi Arabia
Southeast Asia
España
Suisse
Suomi
Sverige
台灣
Ukraine
United Kingdom
United States
Please Select Your Location
België
Česká republika
Denmark
Iceland
Ireland
Italia
Latvija
Lietuva
Lëtzebuerg
Malta
Nederland
Norge
Polska
Portugal
España
Suisse
Suomi
Sverige

Coordinate alignment

When using Simulator VR Mode, you'll need to align the VR and anchor coordinate systems.

Depending on your setup, you can use a VR controller or an ArUco marker to align the VR and anchor coordinate systems of your VR simulator.

Coordinate alignment is performed using a set of APIs. The coordinate alignment APIs are can be used with VR content based on the WaveSDK runtime, so the coordinate systems can be aligned simply by calling the APIs.

Before using the APIs to align the coordinate systems, you'll need to determine the origin points of the anchor controller or wrist tracker you're using with your VR simulator. For details, see Anchor controller and tracker origin points.

Note:

Make sure to choose Device as the Tracking Origin for Wave Rig (Script) so that coordinate alignment is not affected by the headset's floor position settings.

The following image shows the setting in Unity. Unreal Engine has a corresponding setting.

A different API may be used depending on whether you're running Simulator VR Mode using AIO or PC VR headsets. To learn how to align the VR and anchor coordinate systems of your VR simulator, see the following:

Note:
  • VIVE Business Streaming 1.09 is required in order to perform coordinate alignment.
  • When performing coordinate alignment via VIVE Business Streaming, use the Debug.DriverDebugRequest function with OpenVR to send requests:

enum DeviceType
{
    HMD = 0,
    Controller_Left,
    Controller_Right
}

private string SendRequestMessage(DeviceType deviceType, string inString)
{
    string addprefix = inString.Insert(0, "‍GetParameters "‍); // must have space after GetParameters
    uint RETURN_SIZE = 256;
    StringBuilder value = new StringBuilder("‍"‍, Convert.ToInt32(RETURN_SIZE));
    OpenVR.Debug.DriverDebugRequest((uint)deviceType, addprefix, value, RETURN_SIZE);

   return value.ToString();
}
private string SetParameters(DeviceType deviceType, string inString)
{
    string addprefix = inString.Insert(0, "‍SetParameters "‍); // must have space after SetParameters
    uint RETURN_SIZE = 256;
    StringBuilder value = new StringBuilder("‍"‍, Convert.ToInt32(RETURN_SIZE));
    OpenVR.Debug.DriverDebugRequest((uint)deviceType, addprefix, value, RETURN_SIZE);    

   return value.ToString();
}
Submit
Thank you! Your feedback helps others to see the most helpful information.