请选择您的所在地
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

基于标记的场景对齐 API(一体机)

LBSS 提供了多个应用程序编程接口 (API) 以协助进行基于标记的场景对齐
注:

这些 API 只能与使用 VIVE Wave VR SDK 开发的兼容一体机 (AIO) 虚拟现实应用程序配合使用。有关用于 PC VR 应用程序的 API,请参见基于标记的场景对齐 API (PC VR)

配置标记 ID 和字典

为一个或两个 ArUco 标记配置标记 ID 和字典。配置两个标记时,只有在用户扫描次要标记后,才会开始场景对齐。

一个 ArUco 标记

在此示例中,标记 ID 为 66,标记大小为 0.280。此标记大小值对应于每边 280 毫米的标记。
string polling_value;
        string key = "‍PLAYER00InitMA"‍;
        key += "‍{\"‍marker1\"‍: {\"‍id\"‍: 66,\"‍behavior\"‍: 0,\"‍size\"‍: 0.280}}"‍;
        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);
        polling_value = Marshal.PtrToStringAnsi(value);
        Marshal.FreeCoTaskMem(value);
        if(string.Compare(polling_value, "‍InitMAErr"‍) == 0) 
								// Handles the case where initialization failed.Check the configuration string to determine the cause of the error and write the appropriate error handling code.
        {
            // Write your error handling code here.
        }

两个 ArUco 标记

在此示例中,标记 ID 为 6688,且两个标记的大小均为 0.280
string polling_value;
        string key = "‍PLAYER00InitMA"‍;
        key += "‍{\"‍marker1\"‍: {\"‍id\"‍: 66,\"‍behavior\"‍: 0,\"‍size\"‍: 0.280,\"‍isMainMarker\"‍: true,\"‍pairMarkerID\"‍: 88},\"‍marker2\"‍: {\"‍id\"‍: 88,\"‍behavior\"‍: 0,\"‍size\"‍: 0.280,\"‍isMainMarker\"‍: false,\"‍pairMarkerID\"‍: 66}}"‍;
        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);
        polling_value = Marshal.PtrToStringAnsi(value);
        Marshal.FreeCoTaskMem(value);
        if(string.Compare(polling_value, "‍InitMAErr"‍) == 0) 
								// Handles the case where initialization failed.Check the configuration string to determine the cause of the error and write the appropriate error handling code.
        {
            // Write your error handling code here.
        }

保留对齐

在更改环境设置或切换虚拟现实应用程序后,保持对齐结果不变。

key = "‍ClearRecenterXform"‍;
        Interop.WVR_SetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key));
        // This clears the recenter transform for the headset and other tracking devices or objects.You can also manage each device separately, but this is not necessary for most applications.
提交
谢谢!您的反馈可以帮助其他人了解最有用的信息。