3D扫描+Unity,创建HoloLens全息影像竟然这么简单!
HoloLens是一个极其重要的工具,微软在为HoloLens创建全息影像方面已经取得了重大进展,比如其Hcap项目,通过环绕设置超过150台摄像机,全方位捕捉对象的细节,最终生成高质量的全息图像。现在已经有一些开发者也开始尝试为HoloLens创建全息影像,并且实现的方法和过程更加便捷。
德国大型网上零售商Zalando每年都要举办一届Hack Week,Hack Week是个为期一周的编程马拉松,各个技术团队集思广益共同分享创新理念和想法。在2016年12月刚刚结束的Hack Week中,有一个名叫VRify的项目,旨在创建一个身临其境的全息会议。该项目的一位开发者Foti Dim分享了研发过程。
以下是Foti Dim分享的内容:
VRify的目的是创建一个身临其境的全息会议,让你与同事之间能够实现更加高效的远程沟通。利用尖端的VR和AR技术,将分散在世界各地的团队成员聚集到一起,创建成员们的3D化身和实时音频,从而实现逼真的虚拟会议。这篇文章中,我们只关注3D化身的部分,也就是我们所说的全息影像,那么,究竟要怎么实现呢?
第一步,我们需要通过一些工具将现实中的人数字化,例如3D扫描。扫描得到的素材是我们创建全息图的第一步,我们用Occipital推出的结构传感器配合iPad来对目标人物进行扫描,除了硬件之外,我们还需要一些软件来进行配合,在尝试过几次Skanect之后,我们决定用itSeez3D这款软件来让过程变得更加简便,提高结果的质量。
注:Skanect是Occipital推出的3D扫描软件,配合Occipital的结构传感器使用,能够做到对人的面部或一个房间进行非常详细的渲染,但是高度复杂的几何形状并不是Skanect的强项。
itSeez3D也是基于Occipital结构传感器的一款3D扫描应用,可以捕捉到物体的高清晰度彩色和结构数据。
下图是对目标人物进行3D扫描的过程:
扫描过程大约需要1分钟
正如你所看到的,下图是扫描结果,效果令人惊叹:
充满质感的3D扫描模型
在iTSeez3D的服务器上经过简单处理之后质量达到了这个水平
移除所有纹理之后,你会得到一个像《终结者》中的T-1000一样的模型
在我们得到3D模型之后,就该把这些模型素材导入到Unity中了。导入模型的过程中会出现一些小小的缺陷,为了修复它们,我要用三维几何处理系统Meshlab来渲染一下,在Meshlab中打开.obj文件。
Meshlab
步骤:Filters → Normals, Curvature and Orientation → Compute Face Normals
然后输出.obj文件。这一步完成后,我们就可以导入到Unity并且得到一个非常完美的模型。
Unity中的3D模型
有了Unity模型之后,我们就可以开始创建虚拟体验了。为了使这个项目更加令人印象深刻,我们决定用增强现实技术,将3D模型导入到现实物理世界中,成为可以用HoloLens观看到的全息图。
微软HoloLens
通过HoloLens可以观看到很多炫酷的效果,比如将现实环境变成大屏幕体验你喜欢的节目或者游戏,观看一些有趣的全息的影像,但是在我们的项目中,我们将HoloLens的功能服务于工作场景。
为了开发HoloLens应用,你首先需要安装相关的工具,然后再配置Unity和Visual Studio。我们开始设法建立自己的HoloLens应用,并且将我们之前准备好的3D模型投射出来,结果相当令人惊讶。
现实中的人和他的虚拟双生兄弟
投射到现实中的全息图
最终我们将3D扫描的模型很完美地放到了HoloLens中,分辨率足够高,整体感觉相当逼真。下一步我们已经在尝试一些可以操纵的动画模型。
模型动画(无纹理细节)
我们还设法捕捉了两个用户之间的实时音频,尝试让全息动画的口型与音频相对应,不过这部分不在我们今日探讨全息影像生成的范围之内。
目前这个项目已经在Zalando的Hack Week上使用,我们迈出了构建实时全息会议体验的第一步,结果超出了我们的预期,点燃了我们继续研究的激情,并且展示了如何将3D扫描和AR技术很好地结合在一起。