混合现实功能示例和应用

用户佩戴 HoloLens 并通过手部移动作全息影像的图片

每个开发旅程都从回顾其他开发人员成功构建的内容开始 - 混合现实也不例外。 目前,我们所有的教程和示例应用都内置于 Unity 或 Unreal 中。 当我们为其他引擎和平台开发内容时,你会在目录的相关标题下找到它们。

示例应用程序案例研究

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

HoloLens 2开源示例应用

这些示例应用是使用 混合现实 Toolkit for Unity 制作的。

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

功能示例

对于下面列出的每个开发人员方案,都有一些功能示例,这些示例对应于我们的文档中介绍的特定实现,并涵盖一系列开发平台和硬件设备。

应用场景 功能示例 Engine 说明
构建基本Unity混合现实方案 包含Unity示例的 OpenXR Unity C# 使用最新的 Unity 2020.LTS 和 OpenXR 插件开始使用跨平台开发人员工具。
定位策略 本地定位点 跨应用程序会话和设备持久保存和共享空间定位点。 请参阅 空间定位点 一文。
QR 码 Unity C# 检测环境中的 QR 码。
混合现实中的协作 用户标识 Unity C# 使用 Azure Active Directory (AAD) 凭据设置HoloLens 2设备。
空间交互 基本全息影像示例 Windows 10 C++ 在 Windows Mixed Reality 中呈现旋转立方体。
场景理解 场景理解示例 Unity C# 帮助设计具有环保意识的混合现实应用程序。
上下文数据覆盖 QR 码 Unity C# 检测环境中的 QR 码。
海报跟踪器示例 Unity C# 将全息影像与真实对象对齐。
构建混合现实数字孪生体 Unity C# 了解如何使用 Azure 数字孪生和实时 3D 平台Unity创建混合现实应用程序。
捕获相机数据 混合现实捕获示例 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 帮助操作员在工作流中学习,方法是在需要时和地点提供全息说明。
世界锁定全息影像 世界锁定物理示例 Unity C# 探索由 World Locking Tools 的世界锁定坐标系启用的一些虚拟物理体验。
空间引脚示例 Unity C# 更接近实际应用程序的内部工作原理,该应用程序需要将大型对象或对象与实际特征对齐。 空间图钉示例提供了空间固定功能的简化且更集中的视图。
光线图钉示例 Unity C# 演示如何通过使用 MRTK 提供手动作标记对象到位置来设置空间图钉。
管理电源和热 管理电源 & 热 Unity C#、Win32 C++ 当HoloLens 2在温暖的环境中运行,或者具有 (CPU/GPU 使用率、外围设备使用情况等 ) 的繁重性能要求时,可以使用 PowerThermalNotification SDK 订阅通知事件,从而允许设备运行更长时间。 请参阅 PowerThermalNotification API 参考

生成基本 OpenXR 方案

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

对于面向 Unity 2020 生成HoloLens 2或混合现实应用程序的开发人员,可以使用 OpenXR 插件而不是 Windows XR 插件,以提供更好的跨平台兼容性。 混合现实 OpenXR 插件也适用于最新版本的 混合现实 工具包 (2.7.x) 。

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

下面介绍了示例方案:
OpenXR MRTK 基本Unity项目 请参阅 示例自述文件 Unity C# 此存储库包含一个Unity项目,该项目使用 Microsoft 混合现实 Toolkit Foundations 和 Standard Assets 包以及 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 数字孪生和实时 3D 平台Unity创建混合现实HoloLens 2应用程序。

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

相机捕获

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

全息混合现实捕获

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

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

研究模式

第一代 HoloLens 中引入了研究模式,用于访问设备上的关键传感器,特别是用于不打算部署的研究应用程序。 下面的示例应用程序是访问和记录研究模式流以及使用 内部和外部的示例。

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

全息远程处理

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

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