-
简介
-
追踪模式
-
ArUco 标记和基于标记的追踪功能
-
基于标记的追踪功能
-
-
基于标记的位置共享设置
-
LBE 模式/LBE 混合模式设置
-
LBE 地图配置
-
基于标记的防漂移设置
-
基于标记的高级重新定位设置
-
基于标记的场景对齐设置
-
VR 模拟器模式设置
-
其他服务
-
更多功能
基于标记的场景对齐 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 为 66 和 88,且两个标记的大小均为 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. |
此内容对您有帮助吗?
是
否
提交
谢谢!您的反馈可以帮助其他人了解最有用的信息。