app会替代网站吗,百度优化教程,微信电脑版下载官网,不错宁波seo公司Hololens 2应用开发系列#xff08;2#xff09;——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言
在前面的文章中… Hololens 2应用开发系列2——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言
在前面的文章中我们已学习了使用MRTK在Unity中设置混合现实场景并进行程序模拟其中对于检查器中MRTK的各项配置大家可能还难以捉摸。虽然微软官方为我们提供了一些使用教程但内容却缺乏对项目的针对性使我们在了解过程中难以确定某些设置是否是我们所需要的这样设置是否正确。因此本文在介绍这些配置之前先对MRTK的基础知识进行讲解然后再对具体配置进行介绍。下面让我们开始吧。
二、MRTK基础知识
2.1 MRTK概述
MRTK是一个由微软公司驱动的统一、跨平台、支持AR/MR/VR设备开发的框架。它支持如Hololens、HTC、Oculus等多种设备并添加了多种对不同XR插件的支持如OpenXR、Windows XR、ARCore XR等各个XR SDK对应着不同类型的设备和平台在Unity编辑器的项目设置中我们可以在选择指定平台后找到其对应的XR插件如下图所示。 具体来说MRTK本身提供了一系列预构建的组件和服务包括输入系统、交互对象、空间感知、UI元素以及演示场景等但它并不直接处理底层XR平台的具体实现细节比如硬件驱动通信或操作系统级的接口调用而XR SDK则是专门用来整合和管理特定XR功能的软件开发套件它们通常提供更底层的API来访问和控制硬件的功能例如眼动追踪、手势识别、空间定位等。不同的XR SDK针对不同的硬件平台进行优化以确保应用程序能够充分利用各个平台的独特功能。针对HoloLens 2我们通常使用OpenXR来进行项目的编写和构建。如需针对其他平台配置MRTK请参考微软官方文档。 MRTK利用Unity配置MR应用的所有功能特性需要我们使用配置文件Profiles对这些功能进行管理通过配置文件我们不仅可以定制所有功能还可以替换掉默认的功能执行方式来执行自己的逻辑。·
2.2 MRTK运行逻辑
区分于Unity对象管理和生命周期控制的核心逻辑以及程序设计的核心逻辑通过继承MonoBehaviour类依靠对象的事件函数编写应用或使用单例模式控制共享运行组件为保障AR/MR应用对全局内容和全部生命周期的控制MRTK把所有需要共享运行的组件改成了服务Service构建了一个服务容器对上提供服务对下执行具体实现大大提高了整体框架的灵活性和可扩展性。参考MRTK2体系结构概述其体系架构如下图所示。 MRTK有多个核心服务其互相配合或独立运行全部共享相同的生命周期——启动、注册、更新和卸载该生命周期与Unity的MonoBehaviour生命周期不同。MRTK对象即之前提到的MixedRealityToolkit对象用于管理其服务的生命周期和运行此对象可确保程序开始时服务的启动和初始化按预定义的顺序进行。 在结构的最上层MRTK采用事件驱动通过MixedRealityToolkit对象内挂载的Unity对象函数处理来自Unity分发的事件消息实现Unity消息与MRTK服务之间的通信确保数据从低层级通过事件处理函数向高层级之间的流通。
2.3 MRTK配置文件介绍
MRTK通过使用配置文件定义应用程序的功能和其适用的目标设备因此错误的配置文件可能会导致程序在指定设备上无法运行。MRTK有一个总体的配置文件该配置文件是一个可编程对象用于存储全局数据同时其又包含了许多子配置文件的定义形成了一个配置文件树与此对应的在配置面板选中MixedRealityToolkit对象后Inspector检查器中会自动添加MixedRealityToolkit的配置面板上我们不难发现每一个标签页面都有其相关的配置文件选择如下图所示。 配置文件指导了MRTK的运行有哪些功能这些功能大都以服务形式提供因此配置文件的正确使用很关键。在了解这些配置文件之前请先行继续了解MRTK的服务基础知识。
2.4 MRTK服务
MRTK中的服务可分为三类原生服务、扩展服务和数据提供者。MRTK负责协调处理服务间的交互确保服务得到所需的事件消息Awake、Initialize、Update、Destroy等。MRTK的服务通过服务容器进行管理服务容器的实现通过MixedRealityServiceRegistry类它是服务的所有者原生服务和扩展服务都必须先在它上面注册才能使用。 原生服务顾名思义是MRTK官方的服务类型它提供了混合现实的核心功能服务包含相机Camera、输入Input、边界Boundary、传送Teleport、空间感知Spatial Awareness、诊断Diagnostics、场景Scene System 七个模块。如果用户希望定义自己的服务处理逻辑可继承BaseService或实现IMixedRealityService接口以正确地被MixedRealityServiceRegistry服务容器管理。由开发人员创建的服务都称为扩展服务MRTK在配置面板上提供了可视化的服务创建向导后续将对其进行详细介绍。 数据提供者向特定服务输入、空间感知提供支持所有数据提供者都需要实现IMixedRealityDataProvider接口同时必须在服务配置文件中配置才能在MRTK中使用。
三、配置文件使用
微软官方为我们提供了配置文件配置指南每个项目都需要根据项目功能、目标设备等进行配置。下面是针对Hololens 2设备配置文件的详细介绍。
3.1 总配置文件
MRTK的总配文件在配置面板的最上端提供了若干默认配置。参考微软文档配置文件其中DefalutLeapMotionConfigurationProfile是用于配置手部追踪的特定配置文件OpenXRConfigurationProfile是与OpenXR兼容设备的一个配置文件OpenXR是一个由Khronos Group维护的开放标准旨在简化和统一跨增强现实AR和虚拟现实VR平台的应用开发过程。而以Obsolete开头的是已过时的配置文件通常用于Unity 2019以前版本。 针对HoloLens设备DefaultMixedRealityToolkitConfigurationProfile是一个通用配置文件它未针对任何特定用例进行优化可同时适用于HoloLens第一代和第二代设备。如果想要使用更适合其他平台的更高性能/具体的设置可选择DefaultHoloLens2ConfigurationProfile或针对HoloLens1的DefaultHoloLens1ConfigurationProfile。 DefaultHoloLens2ConfigurationProfile配置文件与通用配置文件DefaultMixedRealityToolkitConfigurationProfile之间的主要区别是启用了眼动追踪和视线输入模拟而禁用了边界系统、传送系统等功能。 为了确保默认配置的有效性MRTK锁定了默认配置文件的修改因此我们需要通过Clone按钮来新建和定制自己的配置文件。 默认情况下配置文件均位于项目根目录的Assets\MixedRealityToolkit.Generated\CustomProfiles文件夹中您可在该目录找到针对您项目生成的配置文件。
3.2 相机配置
相机配置文件定义了所使用的渲染相机参数该配置文件由主配置文件管理在配置前首先要确保相机系统的开启即Enable Camera System被勾选。然后Camera System Type选择默认即可它是MRTK预定的基础的摄像机系统类型MRTK提供的默认类实现是MixedRealityCameraSystem这块只有一种选项暂时无需纠结微软官方也尚未对其进行解释如果您找到了相关说明感谢在文章下方分享并评论。然后根据需求选择所需的配置文件Clone即可。此时配置面板出现如下相机设置内容。 Camera Settings Providers相机设置提供程序负责处理与混合现实应用中的相机相关的设置和行为它是为了处理不同混合现实平台和设备特定的相机设置需求而设计的以增强不同的MR头戴式设备的不同的光学参数、渲染要求和立体视觉实现方式下的跨平台兼容性并对镜头畸变、空间感知等进行优化。并非所有平台都需要相机设置提供程序。如果没有与运行应用程序的平台兼容的提供程序Microsoft 混合现实工具包将应用基本默认值。同时我们也可以针对自己的平台创建相机设置提供程序详细可参考这篇文章。对于HoloLens 2应用开发我们选择其默认的配置即可。 Display Setting显示设置是相机运用时的一些配置设置包含Opaque不透明的针对VR和Transparent透明的针对MR两组设置对于HoloLens 2我们只需设置Transparent内容即可。其中包含近平面/远平面元素渲染的最近最远距离以米为单位建议为0.1和50、清除标志绘制过程中或帧刷新时内容对于VR此值设置为Skybox 对于MR设置为Color、背景色如果清除标志未设置为 Skybox则将显示背景色属性和图形质量。 关于更多相机系统的概述请参考微软官方文档相机系统概述 — MRTK2及其同级目录下的文件。
3.3 其他配置
除了前面提到的相机Camera配置还包含输入Input、边界Boundary、传送Teleport、空间感知Spatial Awareness、诊断Diagnostics、场景Scene System 等内容而文章不宜过长接下来的博客内容中我将对其进行介绍。其中**输入Input**尤为重要MRTK所面对的输入错综复杂除了前面提到的输入模拟外还有实际的手势、语音、手柄、控制器等多种类型的输入设备很多功能也建立在其之上同时我们也可以创建自己的输入。 在接下来的专栏中我将用一篇文章详细全面地介绍输入配置的相关内容感谢大家持续关注
参考文献
[1] 汪祥春.HoloLens 2开发入门精要基于Unity和MRTK[M]. 北京清华大学出版社2021. [2] MRTK2-unity开发文档[EB/OL].https://learn.microsoft.com/zh-cn/windows/mixed-reality/mrtk-unity/mrtk2,2022.