使用Hololens开发大概会遇到哪些问题?它的开发包括了哪些部分?

Jyadmin 提交于 周一, 12/09/2019 - 17:27

 

Hololens开发环境

Hololens也是属于Win10通用应用家族的一员。对于Hololens的开发毋庸置疑是Win10的开发,大家从开发环境上可以看出要装Win10的SDK,从开发工具上来说推荐大家使用新一代的集成编译环境Visual Studio 2017。

 

当然你需要去购买Hololens设备。不管有没有设备,都要向大家推荐安装Hololens的模拟器。对于第三方的开发插件来说,我们是推荐大家使用Unity。从5.5版本开始,Unity已经把Hololens列入到正式版本当中。

 

除了Unity以外还可以安装Vuforia。Vuforia从6.1版本开始支持Hololens平台。大家如果希望在Hololens上实现手机AR的功能,大家可以直接使用Vuforia6.1的版本来开发。

使用Hololens开发大概会遇到哪些问题?它的开发包括了哪些部分?

一般来说一个Hololens的程序会包含材质、模型、贴图、脚本等。一个3D的图形程序不外乎也是这样几个部分,这跟普通的3D程序没有什么区别。

 

HoloLens 2启动界面

 

因为Hololens设备的特殊性,有六样东西是需要大家做特殊的处理的,前面三个是跟Hololens独特的输入相关的。在Hololens的应用程序中需要去处理凝视操作、手势操作、语音输入。另外三个是跟空间感知相关的,你需要去识别空间锚标的位置、去处理空间映射、空间声音。

 

这六部分是Hololens程序跟其他程序所不同的部分。中间这六块内容是HoloToolkit。这是微软为了方便大家开发Hololens应用而开源的Unity插件。大家可以到微软官方的开源网址上找到并且下载下来。可以直接使用HoloToolkit来开发HoloLens应用。

 

重点说一下用Unity开发Hololens。开发的过程和开发3D应用区别不是太大,需要注意的是有一些具体设置。

 

Unity质量设置

 

近裁面是0.85,为什么要做这样的设计呢?普通的是0.3米,Hololens推荐大家是设置为0.85。原因是由于Hololens有一个最基本的动作,Airtap。大家可以看一下手臂抬起来从肩到前方大约就是0.85的长度,所以建议不要把画面呈现在手指的近处,这样看上去效果不是太好。

 

Hololens是一个手机性能设备,渲染能力不是太强,所以在Unity里面建议大家把工程质量选项目设置成最快。还需要设置Win10的Capability选项。上方是构建选项,这跟普通的Windows 10的选项是一样的。下方有一个叫UWP Build Type,在这里推荐大家使用D3D,一般来说Hololens里面不会整合Windows 10的控件,所以大家直接选D3D,保证它的渲染效果是最好。

 

因为我接触Hololens的开发者比较多,所以大家对Hololens的开发提出过不少问题,其中比较尖锐的就两个问题。

 

第一个问题是性能问题,也就是性能不足的问题,Hololens不足以支撑非常复杂的3D图形的渲染,这里给大家提供一个叫Simplygon的软件。

 

Unity导出设置

 

这个工具最主要的功能是能够帮你自动地生成LOD的模型以及做材质的整合。而且它不管是虚幻还是Unity都整合的非常好。如果你不喜欢它内制的一些设定,它也提供了非常丰富的API给大家做定制。

 

使用Simplygon有两种方式,一种是到官网上下载,另一种是直接到Unity的插件商店里面搜Simplygon下载就可以了。

 

第二个问题是定位漂移的问题。Hololens是通过激光束定位的,所以它有时候会受光线的影响,光线不同的话,放的空间的锚标在位置上会有偏移。

 

如何解决物体在Hololens里面会产生漂移的问题呢?大家可以发挥一下Vuforia的功能。如果我要定位某项物体的话,可以在实物的物品上放一些非常简单的特殊图片,利用Vuforia这个工具,在Hololens里扫描特别的图片以后,通过Vuforia可以把物体非常好地定位在原来的地方,避免物体在Hololens里面产生漂移的状态。

 

流程是这样,第一把Vuforia和Hololens的主场景进行关联。下面有一个配置选项。Vuforia从6.1版本开始有专门针对Hololens的配置,所以在这边选择Hololens,就做这样两步就OK了,最后把Extended Tracking勾选一下,选的作用是可以把Vuforia里面对物体定位的三维坐标数据和Hololens的空间坐标系数据自动关联起来。