微软HoloLens混合现实应用开发

关于开发环境

HoloLens的开发和沉浸式头戴设备(Immersive Headset)的开发环境略有些不同。整体上后者对于环境的要求比前者更高一些,开发中间件的版本也更加新一些。比如,Windows 10版本:前者只要10586就可以了,后者需要16299――秋季创意者更新;Unity版本:后者需要2017.2,前者只要5.5。

关于所需配置的PC(注:HoloLens不需要配置PC)

支持沉浸式头戴设备的PC分为二大类。普通混合现实PC是指能保证应用以60帧/秒的刷新率运行的PC配置,此类设备适合于运行2D为主,3D 面数不多的应用,比如360度视频播放器;而超级混合现实PC是指能保证应用以90帧/秒的刷新率运行的PC配置,此类设备适合于对3D图形渲染要求比较高的应用,比如3D VR游戏。

关于Windows Device Portal

HoloLens Device Portal这个功能极大地方便了我们去管理监控HoloLens。现在,在最新的Win10里面,微软提供了类似的Windows Device Portal功能,即:窗口设备门户,同样允许用户通过网络或USB连接远程配置和管理设备。它还提供了高级诊断工具,帮助开发者排除故障并查看Windows设备的实时性能。设备门户其实是设备上的一个Web服务器,开发者可以从PC上的Web浏览器连接到该服务器。设备门户不仅仅提供给HoloLens或者混合现实设备,Windows 10 UWP硬件家族都提供了Windows设备门户,但功能和设置会根据设备的要求不同而有所不同。

关于Mixed Reality Portal

这是管理本机混合现实应用的门户,已经是Windows 10的一个内置应用程序。除此之外,这个应用还可以检查本地的PC配置能否符合运行混合现实应用的要求,甚至还提供了功能强大的模拟器,确保开发人员即使没有混合现实的头戴或者运动控制器仍然能够进行混合现实应用的开发。

混合现实应用的开发

一个混合现实的应用和普通的UWP或者3D图形应用大概有7个不同的地方,开发者需要对这7个部分进行特别的处理。包括4种特别的交互手段:视线(Gaze)、手势(Gesture)、语音(Voice)和运动控制器(Motion Controller);还包括3种空间技术:空间映射(Spatial Mapping)、空间坐标(Spatial Coordinate)和立体声效(Spatial Sound)。

Unity 对于这几大模块都有相当好的支持。除此之外,微软官方还提供了功能强大的开源工具包――Mixed Reality Tool Kit(简称“MRTK”),用来加速开发者对于混合现实应用的开发。这个工具包是脚本和组件的集合,提供了大量现成的Script、Shader、UI甚至是Prefab,开发者可以直接用在自己的项目里,或供参考学习。对于每个功能点都有Test Case的Scene,开发者寻找取用十分方便。

下表总结了除Motion Controller之外6大模块的Unity函数和MRTK的方法,供读者参考:

运动控制器(Motion Controller)是和沉浸式头戴设备配套的输入设备,不能用于HoloLens。它相对于手势的一个优点是控制器在空间中具有精确的位置,允许与数字对象进行细粒度的交互,所以虽然也可以使用Xbox One手柄、键盘鼠标,但运动控制器是用户佩戴沉浸式头戴设备在混合现实世界中采取行动的主要方式。运动控制器的开发有三种方法,分别是:传统的Unity Input方法、中断方法和轮询方法。


程序做完后,除了消除Bug以外,对于3D图形的程序,性能优化一直是一件很有必要同时又是很有难度的事情,不同项目优化的方法也不同。总体而言,对于一个程序我们必须先搞清楚性能瓶颈在哪里,是CPU负担太重还是GPU负担太重。因为针对CPU和GPU的优化策略往往是相抵触,甚至是相反的。混合现实应用的性能优化方法和其它3D VR类的程序优化其实是差不多的,Unity官方优化VR程序的建议完全可以用在混合现实应用上。比如:使用LOD降低同屏多边形的面数;使用Draw Call Batching来降低DC数;使用IL2CPP来提升整体程序的效率等。这方面还是很考验程序员经验的。

混合现实应用的发布

开发测试完成后,开发者就需要把应用发布到微软Windows 10商城上。混合现实应用的发布和之前Windows 10通用应用的发布大同小异。都是在官网的开发者中心里,给需要发布的应用取一个独一无二的名字,然后把本地工程和网站上的设置关联起来,同步应用的显示名,应用包的名字、发布者ID等信息。再编译Master版本,创建AppX应用包。

记得应用包生成后,运行WACK程序(Windows App Certification Kit)对于应用包进行商店政策规范的检测。检测通过后,在开发者中心里创建一个发布(Submission),然后上传应用包文件等待官方的审核。

在之后的应用信息设置里,有一些和普通UWP应用不一样的地方,比如:Display Mode 要勾选 “This experience is designed for Windows Mixed Reality on” 选项中PC或者HoloLens的一项;System requirements 选项里要指定Windows Mixed Reality motion controllers 等外设。这些点请开发者注意阅读相关官方文档。