在5月16日的分享会上,厉嘉臣学长为大家简单介绍了一下移动端AR的概况,并且基于Vuforia平台制作了一个简单的AR demo。
厉嘉臣学长首先给大家介绍了一下AR的相关原理。增强现实(AR)是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。而目前移动端的AR相对比较简单,其实就是用摄像机捕捉到真实世界的某块平面,然后把这块平面与摄像机的相对位置传送给程序,最后把虚拟物体投射到这块平面上,就能达到一个简单的增强现实效果了。需要达到这样的效果需要有相应的技术支持,这就是我们所谓的AR应用程序软件平台(AR SDK)。
AR SDK基本分为几个主要功能。
1)动作捕捉:使用手机的传感器和相机,ARCore可以准确感知手机的位置和姿态,并改变显示的虚拟物体的位置和姿态
2)环境感知:感知平面,比如你面前的桌子、地面,在虚拟空间中准确复现这个平面
3)光源感知:使用手机的环境光传感器,感知环境光照情况,对应调整虚拟物体的亮度、阴影和材质,让它看起来更融入环境。
目前市面上有三款比较主流的AR SDK能支持unity进行AR的开发。分别是Vuforia,ARcore和ARkit。
ARcore是谷歌公司研发的AR SDK,软件开发者现在就可以下载它去开发Android平台上的增强现实应用,或者为他们的App增加增强现实功能。ARcore支持动作捕捉,环境感知与光源感知。是一个比较完善的AR SDK。缺陷在于目前只支持谷歌手机以及新版的三星手机,能支持的手机不多,开发成本略高。
ARkit是苹果公司研发的AR SDK,同样也支持动作捕捉,环境感知与光源感知,支持ARKit的iOS设备为iPhone SE、iPhone6s、iPhone 6s Plus、iPhone 7、iPhone 7 Plus、iPad Pro (所有型号)、9.7英寸iPad(2017款)。缺点在于开发成本也相对昂贵,除了需要一部支持ARkit的设备以外,还需要一台支持苹果系统的电脑以及一个一年99美元的开发者账户。
Vuforia相对前几者而言相对简单,适合初级入门。它的原理其实就是图像识别,通过分析一张图片来确定一个平面,然后在这个平面上进行创作。不过目前暂不支持环境感知与光源感知,必须要通过特定的图片来识别平面,Vuforia的优势在于识别出来的平面相对而言比较稳定,只要摄像机能捕捉到有图片,那识别的平面基本不会出现抖动或者错位,这一点是环境感知暂时无法超越的地方。除此之外,Vuforia开发成本相对较低,并且支持大多数安卓系统。
在介绍完AR的相关知识之后,厉嘉臣学长以Vuforia为例,把整个制作AR程序的流程介绍了一遍。首先需要上Vuforia的官网上传一张你需要识别的图片。
以上图为例,图片上传完成之后,网站会自动帮你分析这张图片的识别度高不高,是否有可观的识别点来进行后续的平面识别计算,网站会进行一个星级评判,星级越高,图像识别能力越强。
该图的分析结果为四颗星,图片中的黄色十字星代表了这张图片的识别点,程序会根据这些识别点的相对位置识别出是否是这张图片,并且根据这些识别点的位置生成一个平面。确定图片可用之后就可以下载网站为该图片生成的package包,直接导入unity即可。
进入unity后,需要在unity的playersettings中勾选Vuforia Augmented Reality Supported可用,然后删除场景中的默认Camera,新建Vuforia的ARCamera和Vuforia的ImageTarget,在ARCamera中需要输入Vuforia账户的序列号,然后在ImageTarget中的Database选中需要识别的图片即可。最后只需要把需要展示的物体或者游戏场景放在ImageTarget下就可以了。
以下是最后的效果。
(审稿:柳喆俊)
领取专属 10元无门槛券
私享最新 技术干货