使用全息远程处理和 OpenXR API 的坐标系同步

使用 OpenXR API,用户坐标系将包装到 类型的 XR_REMOTING_REFERENCE_SPACE_TYPE_USER_MSFT引用空间中。

提示

可以在 全息远程处理示例 github 存储库中的远程和玩家示例中找到一个简单的示例。 取消注释 #define ENABLE_USER_COORDINATE_SYSTEM_SAMPLE OpenXrProgramm.cpp 和 SamplePlayerMain.h 文件以启用示例代码。

重要

若要了解全息远程处理 OpenXR 扩展 API,检查可在全息远程处理示例 github 存储库中找到的规范

在播放器应用中设置和更新用户坐标系

全息远程处理目前仅支持使用 Windows Mixed Reality API 编写自定义播放器。 使用 Windows Mixed Reality API 编写的玩家可与 OpenXR 远程配合使用! 因此,必须从Windows Mixed Reality播放器设置用户坐标系。 有关详细信息,请参阅坐标系同步与全息远程处理和Windows Mixed Reality API

在远程应用中获取用户坐标系

若要在远程应用中创建用户坐标系统,XR_REMOTING_REFERENCE_SPACE_TYPE_USER_MSFT请使用 参数调用xrCreateReferenceSpace

xr::SpaceHandle space;
XrReferenceSpaceCreateInfo createInfo{XR_TYPE_REFERENCE_SPACE_CREATE_INFO};
createInfo.referenceSpaceType = static_cast<XrReferenceSpaceType>(XR_REMOTING_REFERENCE_SPACE_TYPE_USER_MSFT);
createInfo.poseInReferenceSpace = xr::math::Pose::Translation({0.0f, 0.0f, 0.0f});
CHECK_XRCMD(xrCreateReferenceSpace(m_session.Get(), &createInfo, space.Put()));

另请参阅