AR/VR/MR互联网科技程序员

Vuforia开发完全指南(一)--- Vuforia概述

2017-09-17  本文已影响869人  Mac高级玩家

Vuforia概述


AR(Augmented Reality)增强现实,想必大家都已经很熟悉了。这是当下最热的技术之一,是利用计算机视觉和计算机图像学领域的相关知识将虚拟世界融入到现实生活当中。AR和另外的VR(Virtual Reality,虚拟现实)以及MR(Mix Reality,混合现实)并称能改变未来生活的3R技术,更是被誉为下一代计算平台。去年(2016年)是VR元年,各大科技巨头都纷纷砸重金进入这个领域,Oculus和HTC的VR设备的惊艳亮相,带动了整个VR行业的大热。MR更是黑科技中的战斗机,目前只有微软的Hololens走在最前面。相对于VR和MR,AR的技术要早很多年,其实也已经在现实生活中初见端倪,大家熟悉的直播中常用的虚拟面罩其实就是AR的应用场景之一。世界上第一次将AR运用到现实生活中要追溯到上个世纪90年代,美国空军的Armstrong实验室在1992年研制出了Virtual Fixtures系统,该系统起初是为了增进人类的表现力以及完成一些远程控制任务而设计。但是当时受制于硬件的限制,AR这一技术始终没有被大规模普及开来。近年来随着计算机硬件的惊人进步,特别是微电子领域的高速发展,使得硬件这一壁垒早已被打破,AR技术得以拨开云雨重见天日,并被认为是下一代通用计算平台。

像所有的开发一样,AR也需要有巨头来提供SDK,使得开发者们能够基于底层封装好的模块,快速的开发出一系列AR产品。目前世界上主流的AR SDK提供厂商,国外的主要是Vuforia、Metaio,国内的主要是EasyAR。其中Metaio在2015年5月已被Apple重金收购,之后就没有再对外公开过SDK,经过两年的封闭开发,Apple已经打造出了强大的ARKit,能够基于庞大的iOS和iPad设备生产出各种惊艳的AR产品。Vuforia也在2015年11月被PTC公司重金收购,但是后续一直在更新并提供SDK,因此在ARKit普及之前,Vuforia一直是开发者最青睐的AR SDK,众多的功能以及高质量的识别技术,使得Vuforia早已深入人心。

随着VR/AR/MR的大热,笔者本人也利用Vuforia开发了一系列的AR产品,高品质的识别速度让顾客十分满意,Unity和Vuforia的深入结合也让AR开发变得十分容易上手,并且能够打造出十分惊艳的产品。《Vuforia开发完全指南》这一系列文章,就是笔者借着利用Vuforia开发的一些经验,来将Vuforia开发的流程以及各种功能细节写成教程,希望能够帮助AR开发者们能够快速进入AR的世界。


Vuforia的SDK支持很多平台,包括iOS、Android、UWP,能够适配市面上大部分的移动终端。Vuforia SDK封装了底层用来图像识别的计算机视觉模块,而且不用你操心摄像头的开启以及图像的读取,这些Vuforia都为你提供好了一系列的参数设置,开发者需要做的只是按照需要配置这些参数,然后基于底层的识别算法开发出自己想要的AR程序。

Vuforia主要由三大部分组成:

根据功能的不同,Vuforia支持很多类型的AR识别类型,主要有以下几种:

Vuforia的SDK可以是免费的,开发者只需注册一个开发者账号,进入官网下载相关平台的SDK就可以进行开发了。当然,免费有免费的限制,用免费SDK开发的程序,摄像头取景时左下角始终会有Vuforia的水印存在,而且一些高级功能也有数量限制。所以如果你是想开发企业级产品,最好还是花钱去买个licenses吧。但是对于学习Vuforia,免费SDK就够了,功能上没有什么太大的影响。

本系列教程采用的是Unity SDK,基于Vuforia + Unity开发AR产品。众所周知,Unity是目前世界上最流行的游戏引擎,也是开发者用的最多的VR/AR开发工具,你不需要懂得计算机图形学,不需要懂得光照计算,不需要会使用OpenGL,也不用操心模型是怎样导入的等等一系列流程,你需要的只是将模型导入,然后用C#编写控制脚本,根据平台编译生成二进制文件,就OK了。同时Vuforia的Unity SDK十分人性化,有很多的常用设置,你可以根据需要设置相关参数,并且不用操心摄像头取景等问题,Vuforia都为你做好了,你需要做的只是free your imagination。


关于具体的开发流程,本系列教程采用的是最新版的Unity作为开发工具,C#作为开发语言(后期还会用到Objective-C,进行Vuforia和Xcode的结合),Mac系统作为开发环境,Xcode作为程序编译链接工具,iOS作为程序最终生成平台。但是其实也不必太在意操作系统的选择,Windows下的Unity一样可以开发AR程序,只不过笔者选择的运行平台是iOS,Unity生成iOS平台App的流程是Unity先要生成Xcode工程,然后利用Xcode进行编译链接,生成最终的App二进制文件进行安装,因此选择了Mac + Unity + Xcode这样的组合。如果只是想开发Android程序,Windows就够了,因为Unity生成Android程序不需要生成中间的工程,可以直接生成APK包进行安装。

好了,接下来我会首先从最基础的教学,让一个不懂编程的人也能快速开发AR程序,然后逐步将Vuforia的各种AR功能展现出来。相信如果你能学完本教程,关于Vuforia的AR开发,应该可以算得上入门并且比较熟悉了。

上一篇 下一篇

猜你喜欢

热点阅读