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

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

提示

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

重要

若要了解全息远程处理 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()));

另请参阅