这几天研究了Vuforia,从一头雾水到搞明白如何开发基于Vuforia的hololens2图像识别AR程序,还是踩了很多坑的。

而且我发现发现他们官网的教程一塌糊涂,小白完全没搞明白,干脆自己写教程。
首先我们先说一下Hololens2程序开发环境的准备,一个好的开发环境是事半功倍,可以避免各种不同版本程序的软件兼容性问题。例如Vuforia11配合unity2022就会出现这个BUG。

这里准备了我自己成功进行开发的整个环境和软件版本,我主要是使用WIN10作为开发平台,WIN11和Mac基本也差不多,可以参考本文。

本文主要涉及四个软件(包):Unity6、Vuforia11、Visual Studio Community 2022、MRTK3.2,他们具体的配置方法如下:

1. Unity

首先是Unity。Unity是两大游戏引擎之一,也是我们开发Hololens2程序的好帮手。基于unity进行hololens2程序的开发可以简化很多代码和流程,但是注意unity也是要使用C#进行编程的,需要有一点编程基础。

为什么我们不选择UE5虚幻引擎呢,UE引擎图形化蓝图开发虽然更简单,但是容易引发许多BUG,而且bug查起来比较困难,不如Unity开发起来严谨,所以我们还是建议采用Unity进行hololens2程序开发。

鉴于我们需要的图像识别程序vuforia官网和官方只提供vuforia 11版本,而11版本则只提供unity6的案例,所以我们选择unity6。由于中国市场不再提供unity6 ,大家需要想自己的办法以国外的IP进入unity全球官网https://unity.com/。并且到unity官网的各历史版本引擎下载页面https://unity.com/releases/editor/archive下载到unity6的引擎和HUB,注意一定要安装LTS版本的unity。

否则国内IP打开unity国际官网全都会自动跳转到unity中国官网。

这里我采用的Hub版本为Unity Hub 3.14.0(注意国内的hub是和国际版hub完全不同的),Unity版本是:Unity 6.0 6000.0.55f1,并且安装了Universal Windows Platform Build SupportWindows Build Support (IL2CPP)两个Modle(模块)。

安装模块的方法是在hub的引擎版本界面点击目标引擎右侧的Manage——Add model,但是国内IP没有Add model的显示,就需要你去官网离线下载模块包,然后单独安装这两个模块。

模块一定是要对应unity版本的,也就是说如果你的unity版本是6000.0.55f1那必须下载这个版本的两个模块,例如该版本可以在这里下载模块:https://unity.com/releases/editor/whats-new/6000.0.55f1#installs

unity模块下载
unity模块下载

安装好模块之后,引擎的界面如下图所示,这时候才能够进行开发。

unity6
unity6版本

PS:当你新建项目完成后,首先需要做的一件事情是切换开发平台为UWP平台。具体的切换方法是:首先在HUB中打开项目——点击unity程序左上角File——Build Profile里面切换为Universal Windows Platform,并设置为ARM64,最后导出项目的时候也需要在这里设置和构建(Build)

UWP平台的切换和build设置
UWP平台的切换和build设置

2. Visual Studio

安装好Unity之后,还需要安装Visual Studio,Visual Studio主要是负责将unity生成(build)的程序打包编译之后,输入到hololens2里面,才可以正常运行。这里我们推荐Visual Studio Community 2022,这个是社区版,个人开发者不要钱,注册个微软账户就可以正常使用了。

具体安装方法是:首先下载Visual Studio Installer,官方下载地址为Visual Studio 2022 IDE - 用于编码调试和测试的 AI

下载完成之后,需要选择适配unity+hololens2开发的模块进行下载,Visual Studio具体需要安装哪些模块可以看微软官方这个文章:安装工具 - Mixed Reality | Microsoft Learn

微软官方是说请确保安装以下工作负载:

● .NET 桌面开发
● 使用 C++ 的桌面开发
● 通用 Windows 平台 (UWP) 开发
●使用 Unity 进行游戏开发(如果计划使用 Unity)

注意:如果你先安装了 Unity,可能会预先安装其中一些工作负载。 请确保你拥有成功部署所需的所有这些工作负载。

在 UWP 工作负荷中,请确保包含以下组件以便安装:

*● Windows 10 SDK 版本 10.0.19041.0 或 10.0.18362.0,或 Windows 11 SDK
● USB 设备连接(通过 USB 进行 HoloLens 部署/调试所需)
● C++ (v142) 通用 Windows 平台工具(使用 Unity 时必需)

有关 HoloLens(第一代)和桌面 Windows Mixed Reality 头戴显示设备的说明
如果仅针对桌面 Windows Mixed Reality 头戴显示设备或 HoloLens(第 1 代)开发应用程序,则可以使用 Visual Studio 2017 和它安装的 Windows SDK。

我个人安装的版本配置可以从网盘下载,然后导入Visual Studio Installer,之后程序会自动下载,可能冗余的程序会有点多,但确实是可以正常开发:
https://share.weiyun.com/VSpvCr3m

导入方法:

 

3. MRTK

MRTK是微软的混合现实开发套件包,这个可以理解为unity里面专门为hololens这一类AR MR VR设备进行交互开发的统一的一些包,这个包有MRTK2 MRTK3 MRTK4,其中不同的模块各自又对着数十个版本,非常混乱,我们最好只安装vuforia11所需要的几个MRTK包就可以了,也可以先安装vuforia11,在它安装的时候,也会自动安装一些MRTK依赖。

查看和删除自己unity的软件包版本的方法可以参考这篇文章:https://www.gongyesheji.org/?p=2403

MRTK版本
MRTK版本

我们使用的MRTK软件版本是:

Mixed Reality OpenXR Plugin 1.11.2

MRTK Graphics Tools 0.7.1

MRTK Core Definitions 3.2.2

MRTK Input 3.2.2

MRTK Spatial Manipulation 3.3.1

MRTK Standard Assets 3.2.0

MRTK UX Components 3.3.0

MRTK UX Core Scripts 3.2.2

OpenXR Plugin 1.15.1

这个配置的微软官方教程可以参考微软官方教程:使用 MRTK3 设置新项目 - MRTK3 | Microsoft Learn

 

4.Vuforia

Vuforia是一个专门的图像识别引擎,个人普通版本使用的是免费的,可以集成在unity里面用于手机、MR头盔等各种地方的AR图像识别。但是要注意这个是国外的软件和网站,有时候官网会打不开,需要国外IP进入官网之后下载程序。

首先我们需要先注册一个开发者账号,这个账号是必须要的,后面生成所有的可识别的图片、模型、都需要云端来处理以及SDK密钥,所以注册开发者账号是必要的。
他的软件下载官网是:Download Center SDK | Engine Developer Portal
开发者官网是:Vuforia Engine Developer Portal

使用Vuforia有两种方式,第一种是使用他的官方案例,直接在官方Sample的基础上面修改,可以说是站在巨人的肩膀上。建议小白使用这种方法!

第二种是导入vuforia之后自己去编写程序,我非常不建议使用第二种!太麻烦了,除非你是深度定制用户或者很强的开发者。

Vuforia官方案例的unity 商店地址是:Vuforia Digital Eyewear Sample | 包 | Unity Asset Store

官网下载地址是:Download Center Samples | Engine Developer Portal

首先你需要已经下载好unity hub,其次还需要创建一个空白的unity项目,然后再进入Unity商店,点击下载这个包,就回自动把这个官方案例包的内容添加到Unity项目里面了。

vuforia+hololens2
Vuforia+Hololens2

如果你没有打开一个Unity项目,直接点击——添加至我的资源,会调起Unity Hub,然后切换到项目页面,让你打开一个现有的项目。

打开项目之后,会自动出现导入和下载页面,也会在导入Assets > SampleResources > Scenes的时候自动添加MRTK依赖。

最后配置:

如果你以上四个程序都安装完成了,接下来需要在UNITY中进行一些MR开发环境的配置,一般安装MRTK的时候会引导你完成这些设置,如果没有的话可能需要单独设置,设置的方法参考这篇微软官方文章(建议一定要仔细阅读):使用 MRTK 设置新的 OpenXR 项目 - 混合现实 |Microsoft 学习

Bug Fix也可以点开unity项目:点击标题栏的第二个Edit——Project settings——找到最左侧倒数第一个选项XR Plug-in Management,第二个Proiect Validation,把里面所有能够Fix的问题全部点击Fix。如果不行可能也不影响打包,但是会影响运行性能。最好是修复到Console窗口里面只要没有红色感叹号就可以了。

这一步的目的是优化配置unity的一些图形之类的设置,使其能够符合Hololens2开发的需求,使得程序运行更加流畅。

如果基本没有BUG需要FIX,那就可以正式开始基于Vuforia的hololens2图像上识别程序的开发了。

如果你已经导入了Vuforia官方案例包,但是没有看到任何场景,那就请看到左下角Unity中的Project窗口,在所有的素材文件夹中找到下面的文件夹:Assets > SampleResources > Scenes,在这个文件夹里面有四个场景关卡,一个是主场景、一个是图像识别场景、模型识别场景、卡片识别场景关卡。双击打开这些关卡,然后在这些案例关卡基础上可以制作自己的Vuforia图像识别AR程序了。

第二篇我们写vuforia应该如何使用。

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注