0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HoloLens 2开发怎么上手?

fFU3_vrtuoluo 来源:lq 2019-06-07 17:36 次阅读

在五月初举行的MR Dev Days上,微软不仅正式公开了大量的开发内容,还开放了HoloLens 2开发动手实验室,我们有幸在数小时内快速构建了一个引擎拆解应用,效果如下:

这么简单就能做出来这样的应用?在MRTK 2的帮助下真的不难,但首先你需要了解HoloLens 2的一些开发基础知识,在本篇文章中我们就来介绍从混合现实开发者搭建开发环境角度的新特性。

开发环境

操作系统SDK

开发HoloLens2应用的电脑必须安装有Windows SDK 18362以上版本,也就是要安装“Windows 10 May 2019”或者说1903的SDK。Windows本身需要是1809以上,也可以升级到1903(如果没有推送,可以加入Insider Preview选择Fast Track,有风险)。

开发工具

开发工具首选还是Unity。完善的工具链,C#的开发环境,天生的跨平台特性,丰富的第三方插件,都使得Unity成为最方便好用的开发载体。至少要升级到2018.3以上的版本。因为目前Unity2019版本还不够稳定,所以在较长时间之内,都将建议使用Unity2018进行开发。

Unreal引擎也已经官方支持HoloLens 2,但暂时SDK还没有被放出。Unreal引擎能够打造非常高质量的3D内容,在一些场景下HoloLens 2可产生更好画面效果。本来这次Build大会上的HoloLens 2 demo就是使用这套Unreal SDK制作的整套的登月火箭展示,效果相当不错,可惜由于一些不稳定因素当场演示失败。

比较硬核的开发者还可以选择使用原生DirectX开发,如果水平高的话效率会高很多,这样做的大多是一些拥有自研3D引擎的公司。OpenXR的runtime支持也已经加入,但还比较早期。

由于HoloLens2仍然运行的是UWP程序,所以不管你使用任何环境,最终还是需要Visual Studio 2017进行打包发布。

MRTK v2

要方便地开发HoloLens2应用,最关键的是MRTK v2。MRTK提供了一整套在MR设备上操作、交互及协同的框架,在HoloLens一代的年代,我们还可以不使用MRTK自行开发,但到了HoloLens2的时代,我们几乎已经能绕不开MRTK v2了(或者说,绕开它的成本很高,且毫无意义。后文会再详细讨论MRTK v2)。也许你之前的应用就是用MRTK v1开发的,如果是这样,官方提供了教程,可以将MRTK v1开发的应用迁移到MRTK v2。

HoloLens 2 或 模拟

有HoloLens 2当然要用HoloLens 2啦!

没有HoloLens2设备的话,我们也可以使用模拟器进行开发。如要安装HoloLens2模拟器,需要将操作系统升级到1809版本或以上。

编译架构

HoloLens2已经进化到ARM架构,因此在Visual Studio中,发布平台要选择ARM。Unity 2018.3版本尚不能支持ARM64,所以目前发布的平台只是ARM32。如果要使用ARM64,需要等待Unity 2019稳定。

开发套件(MRTK v2)

MRTK v2相比老版本做了大量的进化,不客气地说,MRTK v2绝对是目前MR开发最强大的套件,没有之一。MRTK v2的代码进行了大量重构,横跨了AR/VR/MR(统称XR),同时,由于增加了对OpenVR的支持,MRTK v2的覆盖面变得更加广泛,可以直接支持HTC Vive和Oculus Rift等VR设备,拥有强大的输入兼容性。经过重构的Input模块,使得所有设备的不同输入方式可以被包容在一起,开发者可以用相对统一的思路,来处理各种不同设备的输入方式。

重构也使得MRTK v2有了更清晰的模块化结构,更灵活的配置性和更好的扩展性。基于MRTKPackage结构进行的开发,使得它的扩展性得到了空前的提升。从下面的package结构图可窥一斑。

使用方面,除了很多组件变得更加清晰好用之外,还引入了大量的配置文件,可以方便地设置MR中的各种核心功能,还可以创建自己的配置以便切换。

最后,从MRTK v2的路线图来看,目前发布的只是RC1版本,而开发团队显然有更大的野心,在后面的规划中还有更多的内容,让我们拭目以待。

自然手势

HoloLens 2给人印象最深刻的特性,就是可以用最自然的方式,让双手和虚拟物体交互了。通过我们此前提到的Azure Kinect深度摄像头实时抓取高分辨率深度数据,HoloLens 2通过机器学习能够近实时捕捉手部的最多25个关节,效果接近Leap Motion,这也就意味着我们可以掌控整个手部的动作(有趣的是,在MR Dev Day上微软的官方推荐也是用Leap Motion来对这种操作进行简单模拟)。手部位置的追踪和基础的手势已经内置在MRTK v2之中,只要使用默认的配置制作的应用,伸出双手,我们就能看到有一双虚拟的手完整的套在你的手上,并随着你的手实时运动。

使用默认的设置,我们就可以随意的用手抓取近处的虚拟物体,如果物体较远,还可以用手部伸出的射线来像光标一样选取。我们可以用手触摸物体,用手抓,用手指捏,可以按、可以推、可以拨动UI。如果你只是简单的想尝试所有这些,甚至不用写一行代码就可以实现。当然了,如果要实现真正可用的功能,还是需要用代码把这些功能整理到你的应用之中。

值得一提的是,MRTK v2中提供了一个能够让人体验全部HoloLens2输入方式和UI的示例场景,上手时,可以优先考虑用它来进行初次体验。

视线追踪

视线追踪也是这次设备带来的重要新功能,设备可以追踪使用者的眼睛所观察的方向,可以真正做到一个眼神就知道你要做什么。通过MRTK v2提供的功能,我们能获取使用者当前眼镜所注视的位置,可以用视线来选取物体,滚动文本,甚至可以统计使用者视线聚焦的位置情况,以便更好的分析使用者的操作习惯。

但是,由于视线移动非常灵活,过度使用视线追踪有可能会造成使用者的困扰,产生大量违背使用者意图的误操作,因此官方建议只在合适的地方尝试使用视线追踪,并多加测试。

共享空间锚

做过多人协同的MR应用的开发者都知道,空间不能共享是一件多么痛苦的事情。当我们有多台MR设备需要在一个共同场景中同步时,由于每一台设备对空间的理解都不相同,我们往往需要逐个调整每一台设备中的空间锚,才能让这些设备中看到的画面看起来在同一个位置。

微软在HoloLens 1阶段曾经设计了一套API,能将空间信息序列化,并通过网络传输给其他HoloLens,让其他设备的空间与这台设备共享。然而当时的这一套机制实用性却不强。一方面,空间信息序列化后过于庞大,经常达到上百MB的容量,网络传输困难;另一方面,其他设备下载空间信息后,有很大概率无法和自身识别的空间进行匹配,导致经常不能使用。随着HoloLens 2的到来,微软也发布了新Azure Spatial Mapping。

Azure Spatial Mapping可以让不同的MR设备之间共享空间认知,不止HoloLens之间分享,还可以涵盖ARKit和ARCore。与之前不同,这次是直接将空间信息通过简单的REST API上传Azure,由Azure管理并存储,其他端则是从Azure下载。我们在Redmond进行了简单的测试,上传下载的速度还是很快的,比之前应该是做了大幅的优化。世纪互联版Azure据说也要上线该服务,尚不清楚国内版性能会怎么样。

另外,Azure Spatial Mapping还提供了一些附加的功能,例如可以累加式地添加空间锚,不必在一次运行时完全添加,可以在以后打开程序时再次添加;例如还可以在空间锚之间创建联系,帮助使用者进行寻路,获取距离当前空间锚最近的空间锚,等等。

有了Azure Spatial Mapping,我们就可以很容易地在不同的MR设备之间共享空间锚信息,多设备协同时的前期调校工作会变得更加简便。唯一的问题在于,我们必须而且当然要连上Azure公有云才能访问此服务,在纯内网环境中就无法使用了,这时候还是需要自己写相应的映射服务。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6889

    浏览量

    123712
  • 开发
    +关注

    关注

    0

    文章

    370

    浏览量

    40906
  • HoloLens 2
    +关注

    关注

    0

    文章

    12

    浏览量

    5530

原文标题:【技术干货】HoloLens 2开发初窥

文章出处:【微信号:vrtuoluo,微信公众号:VR陀螺】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    开发开发了一款Hololens应用 通过手势和眼神来操控家电

    一位开发开发了一款Hololens应用,该应用用户通过手势和眼神来操控家电。
    发表于 04-17 15:57 2486次阅读

    Styly开发团队将时尚电子商务带给HoloLens

    微软HoloLens的这个新混合现实(MR)商业平台是Psychic VR Lab与时装公司chloma合作完成的。 苏富比国际地产公司和Houzz等公司推出的增强现实(AR)应用程序(如
    的头像 发表于 04-06 12:01 5031次阅读

    Mozilla的Firefox Reality浏览器将支持HoloLens 2

    设备、Oculus Go和谷歌Daydream View,以及Magic Leap One的早期开发者预览版。HoloLens 2的版本目前只是一个原型。
    发表于 02-26 09:27 733次阅读

    微软携HoloLens 2亮相2019年世界移动通信大会(MWC 2019)

    微软携HoloLens 2亮相2019MWC 今天微软在MWC正式面向全球发布了HoloLens 2,同时为其准备了一套全新的Azure Kinect DK,它是一款
    发表于 02-26 09:15 577次阅读

    微软在MWC发布了全新产品HoloLens 2

    昨天刷爆网络的最强单品非HoloLens 2莫属了,昨天在巴塞罗那举行的2019 MWC世界移动通信大会上,微软发布了全新产品HoloLens 2,这款万众瞩目的产品一直备受期待,关于
    发表于 03-11 14:58 984次阅读

    微软卖的不是HoloLens 2,而是“云”。

    回顾HoloLens的发展,在其最初的原型,实际上是一款B端和C端的双定位AR设备,这与HoloLens开发团队不无关系。起初在团队建设上,该开发团队就沿袭了Xbox项目中的核心成员
    的头像 发表于 03-01 11:17 3251次阅读

    微软 HoloLens团队推出,针对企业使用的HoloLens 2产品

    恭喜Microsoft HoloLens团队推出了针对企业使用的HoloLens 2产品! HoloLens和RealWear HMT-1是相辅相成的两款优秀产品。
    发表于 03-07 16:57 886次阅读

    HoloLens 2中文官方网站正式亮相

    近日,HoloLens 2 中文官网已正式上线了。现在,用户可以直接访问https://www.microsoft.com/zh-cn/hololens/来获得有关HoloLens
    的头像 发表于 04-26 09:05 6009次阅读

    微软与Unity合作发布了HoloLens 2开发

    微软混合现实高级总监马特•弗莱肯斯坦在一份声明中表示:“通过将HoloLens 2、Azure MR services和Unity平台整合在一起,我们让开发者比以往任何时候都更容易开始构建推动第三波计算浪潮的实时3D体验。”
    的头像 发表于 05-07 09:52 2835次阅读

    微软HoloLens 2将是混合现实头显中的重大技术改进

    HoloLens 2HoloLens1相比,手势感觉要自然得多,眼动追踪的添加为用户体验增加了新的交互性。
    发表于 11-25 09:39 718次阅读

    微软HoloLens 2 幕后的设计故事

    卡尔·莱德贝特(Carl Ledbetter)兴奋到不能自已。这位负责Xbox游戏主机和HoloLens设计工作的总监的心情十分雀跃,他在《快公司》记者马克·威尔逊(Mark Wilson)的专访中分享了微软最新产品HoloLens 2
    发表于 07-18 10:15 1026次阅读

    微软HoloLens 2开发版正式在美国上市:售价约23412元,总价值31773元

    早在 2019 年 5 月,微软首次公布了 HoloLens 2 开发版套装。在宣布 1 年半之后,微软今天宣布 HoloLens 2
    的头像 发表于 11-03 18:00 3072次阅读

    微软在美国全面上市面向开发人员的HoloLens2

    本文来自cnBeta 早在 2019 年 5 月,微软就已经宣布了面向开发人员的 HoloLens 2 。然而直到一年半以后,它才终于在美国全面上市。此外微软承诺在 2020 年底之前,将
    的头像 发表于 11-06 14:57 2271次阅读

    微软混合现实HoloLens 2有哪些亮点

    小编说:虚拟与现实的边界,如何轻松打破,HoloLens 2所构建的奇趣数字空间,又将有哪些超级亮点呢?让我们一起来看看吧~
    的头像 发表于 01-25 10:37 2705次阅读

    HoloLens 2将应用在汽车上?微软联手大众推动该技术发展

    近日,微软宣布其旗下产品HoloLens 2将新增移动平台功能,据了解,大众汽车参与了这项功能的开发。 微软称,新推出的移动平台功能解决了HoloLens设备传感器混乱的问题。大众在使
    的头像 发表于 05-06 17:46 1636次阅读