使用全息远程处理和 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()));