请选择您的所在地
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
Suisse
Suomi
Sverige
台灣
Ukraine
United Kingdom
United States
请选择您的所在地
België
Česká republika
Denmark
Iceland
Ireland
Italia
Latvija
Lietuva
Lëtzebuerg
Malta
Nederland
Norge
Polska
Portugal
Suisse
Suomi
Sverige

使用虚拟现实操控手柄对齐虚拟现实和锚点坐标系

使用虚拟现实操控手柄标记对齐 VR 模拟器的虚拟现实和锚点坐标系。
注:
  • 在使用坐标对齐 API 之前,请确保 VIVE Wave SDK 已更新至版本 4.4.0。

  • 请在操作 VR 模拟器之前测试 API,以确保坐标系按预期工作。

  1. 定义虚拟现实和锚点坐标系的偏移量。

    在对齐虚拟现实和锚点坐标系之前,必须先定义偏移量。请使用字符串键 ClearRecenterXform 来定义偏移量:

    操控手柄

    string key = "‍ClearRecenterXform"‍;
    Interop.WVR_SetParameters
    (WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key));
    Interop.WVR_SetParameters
    (WVR_DeviceType.WVR_DeviceType_Controller_Right, Marshal.StringToHGlobalAnsi(key));
    Interop.WVR_SetParameters
    (WVR_DeviceType.WVR_DeviceType_Controller_Left, Marshal.StringToHGlobalAnsi(key));
    

    腕带式追踪器

    string key = "‍ClearRecenterXform"‍;
    Interop.WVR_SetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key));
    key = "‍ClearRecenterXformTR"‍;
    Interop.WVR_SetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key));
    
  2. 计算用于对齐虚拟现实和锚点坐标系的字符串键值。

    字符串键 PLAYER01InCarOrg 用于对齐虚拟现实和锚点坐标系。请通过使用以下公式计算此字符串键值,其中 T 为米,q 为量子角。

    在下图中,锚点坐标系根据右手法则从虚拟现实坐标系偏移。

    对于此设置,字符串键 PLAYER01InCarOrg 将定义如下:

    PLAYER01InCarOrg = -0.4,0.9,-0.4,0.0,0.0,0.0,1.0
  3. 根据需要修改字符串键 PLAYER01InCarOrg 的值,并将其插入以下 API 中。

    一体机

    string key = "‍PLAYER01InCarOrg=-0.4,0.9,-0.4,0.0,0.0,0.0,1.0"‍;
    uint RETURN_SIZE = 256;
    IntPtr value = Marshal.AllocHGlobal(new IntPtr(RETURN_SIZE));
    Interop.WVR_GetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key), value, RETURN_SIZE);
    

    PC VR

    string key = "‍PLAYER01InCarOrg="‍;
    string setting = "‍-0.4,0.9,-0.4,0.0,0.0,0.0,1.0"‍;
    key += setting;
    string result = SendRequestMessage(DeviceType.HMD, key);
    if (string.Compare(result, "‍InitMAErr"‍) == 0)
    {
       // write your error handling code here
    }
    
提交
谢谢!您的反馈可以帮助其他人了解最有用的信息。