最近在一边学习谷歌TensorFlow,一边在做些简单的AR demo,在此总结下学习经验(自学的过程异常痛苦啊,还有总会有好人会在社区分享经验,这就是前人栽树,后人乘凉呐)
自从任天堂推出《精灵宝可梦GO》,一时间AR风头无两,你知道吗,这并非真正的AR,《精灵宝可梦GO》所展现出来的特性只是依靠谷歌地图上固定的经纬度而已,也就是它并没有真正的与现实发生交互,当然,它仍然是一款优秀的AR游戏(什么,我说的自相矛盾,哈哈,其实并没有😵)。与VR高昂的设备相比,AR可以部署在移动设备上,这简直就是AR发展的福音啊。不过最近两年,由于并没有爆款出现,AR渐渐变得不是那么火热。不过,我认为它仍然有巨大的发展空间,真正的全息投影必然是由AR一步步发展过去的,电影里的黑科技必然会由AR的发展而实现(我需要大量的振金😀)
接下来说正题,现在有三种sdk共大家选择,分别是:ARToolkit,是一个开源的SDK,然后就是EasyAR和Vuforia,前者是国人开发的,简直是英文盲的福星啊,后者是高通的,后来好像卖给谁了,这都不是问题,这两款在移动端表现很好,更重要的是它们可以和unity3D很好的结合,所以大多数也是使用这两个sdk😂。两者的开发模式大同小异,会有细微区别,下面我会一一说明。
首先,你需要安装unity3D,然后配置电脑的java运行环境,也就是下载Java的jdk,配置系统环境变量,当你在控制台敲Java -version会出现jdk版本信息,说明就OK了,接着去下载androidSDK,并配置系统环境变量,当然你也可以下载Android Stdio,它会自动下载AndroidSDK,也许你会问配置这些干嘛啊,当然是为了打包成APP啊😂。
准备工作做好,接下来去easyAR或者Vuforia下载对应的unity插件,当然有收费版本的,我们选择免费版的就好了,然后注册账号获取APP License Key,现在无牌车已经没有活路了😂,成功后你会看到一长串字符串,这个是你需要添加到unity工程中的ARCamera组件中需要,否则工程无法使用sdk。进入unity3d中,导入easyAR或者Vuforia插件,在左下方project的Assets里。区别来了:easyAR识别图是直接导入unity3d中的,它的path保存在一个json文件里,这就意味着你想更换识别图,或者想识别多张图的话就可以在这个json文件里更改,而Vuforia识别图需要在你获取key的地方,创建识别图的数据库对象,当然可以创建很多张识别图。其实本质一样,接下里,在unity里,在左上角的Hierarchy下面,删除mianCamera,添加ARCamera,然后导入识别图数据(两者不一样哦),导入3D模型在识别图上方适当位置,怎么适当呢,这个自己琢磨一下吧,哈哈哈。接下来可以打包运行了,在此之前,你还需要配置Java jdk路径,在edit->preferences->external tools这里哦,接下来file->build setting,选择android应用,点击playersettings,你可以设置app的名称,公司名等,不过package需要填对,具体参照API文档。usb连接手机,打开开发者模式,build and run就会在你的手机上打包成一个App。效果如下:
别问为什么只有一张,因为懒。当然,这只是AR开发的hello wrold,我接下来几个月可能都会在研究AR开发,有什么问题欢迎随时交流啊。
ps:后期我会整理自己的成果放在gitHub上,开源万岁!