混合现实功能示例和应用

Picture of a user wearing a HoloLens and manipulating a hologram with hand movement

每次开发历程都会先回顾其他开发人员成功构建的内容,混合现实也不例外。 目前,我们所有的教程和示例应用均基于 Unity 或 Unreal。 在我们为其他引擎和平台制作内容时,“目录”中的相关标题下会列出这些内容。

示例应用程序案例研究

开源示例应用由我们的团队创建,旨在帮助你获得处理混合现实开发的第一手资料。 我们提供了项目和完整的源代码作为学习参考。

HoloLens 2 开源示例应用

这些示例应用是使用适用于 Unity 的混合现实工具包构建的。

HoloLens(第 1 代)开源示例应用

功能示例

对于下列每种开发人员方案,我们的文档中有与特定实现相对应的功能示例,这些示例还涵盖了一系列开发平台和硬件设备。

场景 功能示例 引擎 说明
生成基本的 Unity 混合现实方案 OpenXR 与 Unity 示例 Unity C# 通过最新的 Unity 2020.LTS 和 OpenXR 插件开始使用跨平台开发人员工具。
定位策略 本地定位点 跨应用程序会话和跨设备持久保存和共享空间定位点。 请查看空间定位点文。
Azure 空间定位点示例 使用 Azure 空间定位点的基本功能生成空间感知混合现实应用程序。
QR 码 Unity C# 检测环境中的 QR 码。
混合现实中的协作 用户标识 Unity C# 使用 Azure Active Directory (AAD) 凭据设置 HoloLens 2 设备。
Azure 空间定位点示例 使用 Azure 空间定位点的基本功能生成空间感知混合现实应用程序。
空间交互 基本全息影像示例 Windows 10 C++ 在 Windows Mixed Reality 中呈现旋转立方体。
场景/物体理解 场景理解示例 Unity C# 帮助设计环境感知型混合现实应用程序。
Azure Object Anchors 示例 Unity C# 通过 Azure Object Anchors,使用 3D 模型在物理世界中检测对象,并估计其 6DoF 姿态。
上下文数据覆盖 QR 码 Unity C# 检测环境中的 QR 码。
海报跟踪器示例 Unity C# 将全息影像与真实对象对齐。
生成混合现实数字孪生体 Unity C# 了解如何使用 Azure 数字孪生和 Unity(实时 3D 平台)创建混合现实应用程序。
捕获相机数据 混合现实捕获示例 Windows 10 C++ 以照片或视频的形式捕获混合现实与真实世界的第一人称体验。
研究模式示例 Windows 10 C++ 访问用于研究应用程序的 HoloLens 设备上的关键传感器。
全息远程处理 全息远程处理播放器 Windows 10 C++ 使用 Wi-Fi 连接将全息内容从电脑实时地流式传输到 Microsoft HoloLens。
Azure 远程渲染示例 Unity C# 使用此处列出的示例数据资源测试 Azure 远程渲染服务。
任务管理和指南 Dynamics 365 Remote Assist 在 HoloLens、HoloLens 2、Android 或 iOS 设备上利用 Dynamics 365 Remote Assist 在不同位置协同作业,提高协作效率。
Dynamics 365 Guides 在操作人员需要的时间和位置提供全息说明,帮助他们在工作流程期间学习知识。
World Locking 全息影像 世界锁定物理示例 Unity C# 探索 World Locking Tools 的世界锁定坐标系统实现的一些虚拟物理体验。
空间大头针示例 Unity C# 更接近需要将大型物体与实际功能进行对齐的真实应用程序的内部工作情况。 空间大头针示例提供了一个关于空间大头针功能的更简化、更集中的视图。
射线大头针示例 Unity C# 演示如何使用 MRTK 可供性手动将标记对象放置到相应位置来设置空间大头针。
使用 Azure 空间定位点的 World Locking Tools 示例 Unity C# 提供一个可在应用程序中跨会话持久保留和跨设备共享的稳定坐标系统。 将 World Locking Tools for Unity (WLT) 与 Azure 空间定位点 (ASA) 结合使用是就能实现这一目标。
管理电源和热 管理电源和热量 Unity C#、Win32 C++ 当 HoloLens 2 在温暖环境中运行或对性能(CPU/GPU 使用率、外设使用率等)要求较高时,可使用 PowerThermalNotification SDK 订阅通知事件,让设备运行更长时间。 请参阅 PowerThermalNotification API 参考

生成基本的 OpenXR 方案

如果你不熟悉如何生成基本混合现实方案,这些示例将帮助你入门。

对于使用 Unity 2020 生成 HoloLens 2 或混合现实应用程序的开发人员,可使用 OpenXR 插件来代替 WindowsXR 插件,以更好地实现跨平台兼容性。 混合现实 OpenXR 插件还适用于最新版本的混合现实工具包 (2.7.x)。

示例 参考文章 平台 说明
混合现实 OpenXR 与 Unity 示例 使用 OpenXR 插件 Unity C# 这些示例项目展示了如何使用混合现实 OpenXR 插件为 HoloLens 2 或混合现实头戴显示设备生成 Unity 应用程序。

涵盖了以下示例方案:
OpenXR MRTK Base Unity 项目 请查看示例自述文件 Unity C# 此存储库包含一个 Unity 项目,其中设置了 Microsoft 混合现实工具包基础知识和标准资产包以及 Microsoft OpenXR 插件包。
使用 Unity 2020.3 和 MRTK 2.7.2 什么是 MRTK Unity C# MRTK-Unity 是由 Microsoft 驱动的项目,它提供了一系列组件和功能用来加速 Unity 中的跨平台 MR 应用开发。
OpenXR 资源管理器 请查看示例自述文件 C++、Windows、Linux、OpenXR OpenXR 资源管理器是面向 OpenXR 开发人员的便捷调试工具。 它使得可在 OpenXR 运行时之间轻松切换,显示运行时支持的扩展的列表,还可用于检查常见属性和枚举,有直接链接指向 OpenXR 规范的相关部分!
面向混合现实开发人员的 OpenXR 示例 什么是 OpenXR C++ 这些 OpenXR 示例使用 C++17 和 Direct3D 11。 相同的源代码适用于在 HoloLens 2 上运行的 UWP 应用程序和在 Windows 桌面版上运行的的 Win32 应用程序(它们带有 Windows Mixed Reality 沉浸式头戴显示设备)。

混合现实中的协作

在混合现实中,几乎任何地方的人都可聚到一起来分享经验和进行协作。 此处所列示例演示了可实现这种协作的一些功能。

用户标识

此示例使用 Azure Active Directory (AAD) 凭据设置 HoloLens 2 设备,然后将设备配置为使用虹膜登录。

示例 参考文章
HoloLens 2 上的 AAD 登录 Microsoft 标识平台概述

空间交互 - 基本全息影像示例

此示例在 Windows Mixed Reality 上运行并呈现旋转立方体。 可将立方体放在新的位置来与其交互,可使用多种输入方法。 此示例适用于连接了头戴显示设备的电脑,也适用于 Microsoft HoloLens。

示例 参考文章
Windows通用示例 - 基本全息影像 请查看示例自述文件

场景理解

场景理解向混合现实开发人员提供一个结构化的大致环境表示形式。 场景理解旨在结合现有混合现实运行时的能力,来开发直观和环境感知的应用程序。 这些运行时是准确度高但结构性低的空间映射,也是新的由 AI 驱动的运行时。

示例 参考文章 平台 说明
混合现实场景理解示例 (SU SDK) 场景理解 Unity C# 和 SU SDK 基于 Unity 的示例应用程序,它展示了 HoloLens 2 上的场景理解。
场景理解示例 (MRTK + SU SDK) 场景理解观察程序 (MRTK) Unity C#、MRTK + SU SDK MRTK + 场景理解 SDK 示例。

上下文数据覆盖

上下文数据是便于更广泛理解事件、人物或项目的背景信息。 借助增强现实 (AR),可显示此信息并使其与物理物体精确对齐,以提供见解、说明、服务记录和其他重要数据。

QR 码

HoloLens 2 可以检测头戴显示设备周围环境中的 QR 码,从而在每个代码的真实位置建立坐标系统。

示例 参考文章
Unity 中的 QR 码跟踪 QR 码

海报跟踪器示例

通常,能够将全息影像与真实物体对齐、或者将多台 HoloLens 设备与一组常见的世界坐标对齐是很有帮助,这样每个人都会在相同位置看到相同的全息影像。 例如在 Unity 场景中,可添加一张你想要在其中定位场景的“海报”(通常是游戏板),接着在它的上面或周围添加全息影像。 然后,可打印该海报,将它放在桌子上,并运行校准/对齐工具,这将移动海报的全息版本,使其与海报的物理版本保持一致。 这会将所有关联的全息影像移动到正确的对齐位置。

示例 参考文章
海报校准示例 请查看示例自述文件

生成混合现实数字孪生体

在此示例中,了解如何使用 Azure 数字孪生和 Unity(实时 3D 平台)创建混合现实 HoloLens 2 应用程序。

示例 参考文章
使用 Azure 数字孪生和 Unity 生成混合现实数字孪生体 完整学习路径

相机捕获

混合现实设备捕获的非结构化环境传感器数据会转换为我们周围物理世界的强大抽象或全息表示形式。

全息混合现实捕获

混合现实捕获 (MRC) 会捕获将真实世界和数字世界组合成照片或视频的第一人称体验,并与他人实时共享你所看到的内容。

示例 参考文章
混合现实捕获示例 混合现实捕获

研究模式

第一代 HoloLens 引入了研究模式,用于访问设备上的主要传感器,尤其适用于不打算部署的研究应用程序。 以下应用程序示例展示了如何访问和记录研究模式流,以及如何使用内部函数和外部函数

示例应用程序 参考文章
HoloLens(第一代) 研究模式
HoloLens 2 研究模式

全息远程处理

全息远程处理播放器是一款伴侣应用,可连接到支持全息远程处理的电脑应用和游戏。 全息远程处理通过 Wi-Fi 连接将全息内容从电脑实时流式传输到 Microsoft HoloLens,受 HoloLens(第一代)和 HoloLens 2 支持。

示例 参考文章
全息远程处理示例 全息远程处理概述