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

LBSS 提供了多个应用程序编程接口 (API) 以协助进行基于标记的位置共享
注:

这些 API 只能与 PC VR 应用程序配合使用。有关使用 VIVE Wave VR SDK 开发的兼容一体机应用程序的 API,请参见基于标记的位置共享 API(一体机)

配置标记 ID 和字典

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

使用 PC VR 设置基于标记的位置共享时,有两种方法可以配置标记 ID 和字典:

  • 使用 API 从 markers_list.json(已保存在电脑上)中获取标记设置
  • markers_list_escape.json 中的标记设置直接插入到 API 中

在使用 VIVE Business 串流设置基于标记的位置共享时,您可以选择使用哪种方法。有关详细信息,请参见使用 VIVE Business 串流设置基于标记的位置共享

一个 ArUco 标记

在此示例中,标记 ID 为 66,标记大小为 0.280。此标记大小值对应于每边 280 毫米的标记。
string key = "‍PLAYER00InitMA"‍;
setting = "‍{\"‍marker1\"‍: {\"‍id\"‍: 66,\"‍behavior\"‍: 3,\"‍size\"‍: 0.280}}"‍;
key += setting;
// Check VS_WVRGetParameters() result

bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);
if (result == false)
{
   // Write your error handling code here.
}

两个 ArUco 标记

在此示例中,标记 ID 为 6688,且两个标记的大小均为 0.280
string key = "‍PLAYER00InitMA"‍;
setting = "‍{\"‍marker1\"‍: {\"‍id\"‍: 66,\"‍behavior\"‍: 3,\"‍size\"‍: 0.280,\"‍isMainMarker\"‍: true,\"‍pairMarkerID\"‍: 88},\"‍marker2\"‍: {\"‍id\"‍: 88,\"‍behavior\"‍: 3,\"‍size\"‍: 0.280,\"‍isMainMarker\"‍: false,\"‍pairMarkerID\"‍: 66}}"‍;
key += setting;
// Check VS_WVRGetParameters() result

bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);
if (result == false)
{
   // Write your error handling code here.
}

发送标记设置

从电脑上的 JSON 文件中获取标记设置并将其发送到头戴式设备。

string key = "‍PLAYER00InitMA"‍;
// default path::C:\Users\{USER_NAME}\markers_list.json
string markerInfoPath =
Environment.ExpandEnvironmentVariables(@"‍%USERPROFILE%\markers_list.json"‍);
if (File.Exists(markerInfoPath))
{
string setting = File.ReadAllText(markerInfoPath);
setting = setting.Replace("‍\n"‍, "‍"‍).Replace("‍ "‍, "‍"‍);
key += setting;
}
bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);
if (result == false)
{
   // Write your error handling code here.
}

发送请求

用于发送请求的辅助函数。

enum DeviceType
{
HMD = 0,
Controller_Left,
Controller_Right
}
bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);
VS_WVRSetParameters((int)DeviceType.HMD, key);

扫描标记

提示头戴式设备的追踪引擎检测 ArUco 标记并处理数据。

string key = "‍ClearRecenterXform"‍;
VS_WVRSetParameters((int)DeviceType.HMD, 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.

string key = "‍PLAYER00StartScan"‍;
bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);

停止扫描

停止扫描过程。

string key = "‍PLAYER00StopScan"‍;
bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);

查看扫描状态(可选)

定期检查最新扫描的状态。

注: 为了避免影响系统性能,请勿将检查频率设置为每秒两次以上。
string key = "‍PLAYER00CheckMA"‍;
bool result = VS_WVRGetParameters((int)DeviceType.HMD, key);
提交
谢谢!您的反馈可以帮助其他人了解最有用的信息。