最近有一些朋友在QQ群或者微信公众号后台问Relax关于AR应用开发如何入门的问题,我想后面肯定还有很多人会问这样的问题,干脆就自己所知道的,比较系统的写一篇入门文章出来,供大家参考一下。

这是AR应用开发入门的第一篇,先从整体上给大家讲一下,后面文章再分开来详细讲。

1、AR发展现状

在做AR开发之前,有必要说一下AR开发的现状。AR目前已经在军事和工业方面有比较多的应用,硬件设备大都是基于AR眼镜,因为都是军事和工业方面比较专业的应用,所以都是企业在做,一般都没个人开发者什么事;

另外一方面,在2017年,苹果和谷歌都相继推出了ARkit和ARCore,这两个是AR开发的SDK,苹果和谷歌分别是安卓和苹果手机系统厂商,所以推出这两个SDK的意图很明显,就是想让手机也能使用AR,手机现在人手一部,如果有了AR应用,那AR很快就会走进我们的生活中。所以就目前来说,AR应用开发主要还是指手机AR应用开发;

目前AR眼镜也开始进入消费级发展阶段,所以后面很快我们就可以基于AR眼镜开发应用,手机受限于屏幕大小,手机AR应该只是AR发展的一个过渡阶段,AR眼镜才是AR应用的主流平台;当然这是后话,我们这个系列的文章也只会讲手机AR应用的开发。

2、开发环境的选择

前面说了我们是讲手机AR应用开发,所以如果你是想做苹果手机的AR应用开发,那自然就选择苹果自己的ARkit,但是对安卓来说,这个选择就复杂一些,由于安卓的碎片化或者说开放性,安卓手机厂商众多,AR SDK也众多,下面是Relax整理的一张国内外的AR SDK的表,供大家参考。

就ARCore来说,目前也并不是所有的安卓手机都支持,因为每个手机厂商的配置不一样,ARCore需要与手机硬件厂商进行适配调校,所以目前只能是部分机型支持,目前支持ARCore的手机型号如下,详情可以参见官网这个实时更新的页面 https://developers.google.cn/ar/discover/supported-devices。

Relax目前入手的是华为的Nova 3i在学习AR,下载了一些AR应用做了测试,如果是作为测试机用,完全没问题,从性价比考虑,大家可以考虑一下。

上面的表里面还有其他的SDK,在功能方面,各个SDK可能会有一些差异,但是AR基础的环境理解、运动跟踪和光照估计肯定都是支持的。

Relax目前用了ARCore,也简单看了下华为AR Engine,从文档资料来看,华为AR Engine支持骨骼、手势识别等等,但是华为AR Engine肯定只对华为系的手机更友好,如果你想让你的手机支持更多的机型,目前来说还是选择ARCore吧,把ARCore理解透彻,再理解其他SDK其实就很容易了,只是API函数的接口名称变了。

另外要提到的是,正是由于AR SDK太多了,Unity这个3D游戏开发引擎厂商开发出了AR Foundation,做的事情简单来说就是把ARCore和ARkit再封装了一下,大家都知道,Unity是跨平台的,同一份代码可以打包发布到windows、android和苹果等各个平台,所以对于AR开发,Unity也希望简化开发者的工作,开发者基于AR Foundation开发,选择发布不同的平台,就选择使用对应的SDK,这样一来可以省去开发者需要学习多个平台SDK的成本,预计后期Unity还会整合其它SDK,再不久的将来可以基于Unity开发AR眼镜应用也是有可能的。

ARCore目前发布了Android、Android NDK、Unity、Unreal、IOS(ARCore其实也支持苹果手机)等平台的SDK,由于Relax之前使用Android Studio开发APP,所以一开始是选择AS学习ARCore,之前还没有支持AR的手机,是参照官网用模拟器运行了一下HelloSceneform,感觉AS的配置开发还是比较麻烦的,也遇到了一些坑,前段时间写了一篇文章记录了下来,有需要的朋友也可以看下,所以个人感觉AS不太适合AR的新手入门。

目前Relax选择了基于Unity学习ARCore开发,后面一篇文章会写一下如何搭建基于Unity的ARCore开发环境。

另外说一下,写到这里Relax有一个想法,就是Relax想要搭建一个博客系统,目前靠Relax一个人只写基于Unity的AR开发教程,显然不够,可能还有很多很多的朋友会因为各种各样的原因,选择其他的平台或者SDK,不同的平台不同的SDK,在操作步骤和API上都不一样,所以Relax想搭建一个AR开发者自己的技术博客,大家把自己学习AR开发的过程或者遇到的问题都记录在自己的博客空间里面,这样后来者通过我们写的博客就能很快学习AR,也方便大家进行技术交流,避免大家到处搜索资料。

通过这样一个平台大家共同来为AR的发展出一份力,不知道大家觉得Relax这个想法怎么样,后面这个博客系统搭建好了再告诉大家。(PS:AR博客平台目前已搭建好,可留言获取)

3、 基础知识的准备

Relax之前没有用过Unity,也没有做过3D方面的开发,对Unity工具的使用,3D模型方面的基础知识都比较欠缺,所以跟我一样的朋友,熟悉Unity根据的使用和3D基础知识是很有必要的,Relax主要是看了一下Unity官网的用户手册,这个用户手册Relax已经上传到开发群里面了,有需要的朋友可以下载。

4、学习资料

关于学习资料的问题,也是刚开始学习AR开发的朋友比较关心的问题,目前关于ARCore开发的资料比较少,Relax目前主要是在看《ARCore之路——Unity开发从入门到实践》这本书,以及《ARCore从0到1》视频教程。

其实从原理来讲,AR涉及到数学、计算机视觉、机器学习、图像识别等各个方面的内容,对开发者来说,掌握深层次的原理对学习AR开发肯定是有很大帮助的,但是在短时间内掌握这些知识显然是不太可能的,建议大家根据自己的实际情况考虑吧,我们学习AR开发肯定有自己的目标,我们的目标要求我们掌握哪些知识那我们就必须掌握那些知识了。

5、应用开发方向

根据你想实现的AR功能,其实AR可以再细分出一些场景,比如目前比较常见的扫描一个卡片然后显示3D模型,这个是AR的图像识别功能,如果是AR特效相机,那就是AR的人脸增强功能,如果是多人AR游戏,那就要用到共享云锚点功能;

这些都根据你需要做什么类型的应用来重点研究就好,但是基础的功能,比如特征点和可视化平面的检测以及模型的大小、声音、动画的调整和放置,这些都是必须掌握的。

学习是为了使用,建议大家先有一个目标,比如大家想开发出一个什么类型的AR应用,然后由点及面来学习AR,就跟滚雪球一样,越滚越大,掌握的知识才会越来越多,如果一头扎进AR这片浩瀚的蓝海中(坑也多),多少会有些不知所措不知从何下手的感觉。

谨以此想法跟所有学习AR开发的朋友共勉。

如果你还有不清楚或者有疑问的地方,可以关注微信公众号:AR新世界,直接来问Relax吧。

想要Relax写出更精彩的文章?那么希望老铁别吝啬你的三连击哦

1、点赞,可以让更多的人看到这篇文章

2、关注我的原创微信公众号『AR新世界』,第一时间阅读我的文章。

3、也欢迎关注我的博客哦。

超详细的AR增强现实开发入门总结相关推荐

  1. AR增强现实开发介绍

    AR增强现实开发介绍(续) - 刘国柱老师 - 博客园 关注公众号 风色年代(itfantasycc) 200G 游戏开发资料合集送上~ ---开发基础篇 开发增强现实技术,无论是商业级应用,还是面向 ...

  2. Docker超详细版教程通俗易懂 -之- 入门篇

    前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...

  3. Java开发环境配置“IntelliJ IDEA”,超详细整理,适合新手入门

    目录 前言 一.IDEA的介绍 1.大概介绍 2.详细介绍 二.IntelliJ IDEA安装图文教程 1.进入 IntelliJ IDEA 官网 2.点击 Download 下载 IntelliJ ...

  4. 【超详细】MySQL零基础入门实战

    文章目录 1.MySQL入门 1.1.源码安装MySQL5.7 1.2.Docker安装MySQL5.7 1.3.忘记MySQL超户密码 1.4.MySQL支持简体中文 2.MySQL数据库操作 2. ...

  5. AR(增强现实)开发资源汇总

    微信公众号:AIRX社区 AR platform ARKit-ARKit是苹果在2017年WWDC推出的AR开发平台.开发人员可以使用这套工具iPhone和iPad创建增强现实应用程序 ARCore- ...

  6. 跨平台AR增强现实开发(一)(AR开发环境的搭建)

    简介: AR,英文单词为AugmentedReality,增强现实:该技术在几十年前就被提出来了:但一直局限于设备,硬件的限制,无法在生活中应用开来,随着这几年移动互联网的快速发展以及市场的需求变更速 ...

  7. 【超详细】Mybatis plus 从入门到精通

    mybatis-plus是一款Mybatis增强工具,用于简化开发,提高效率.下文使用缩写mp来简化表示mybatis-plus,本文主要介绍mp搭配SpringBoot的使用. 注:本文使用的mp版 ...

  8. 超详细教程,一文入门Istio架构原理及实战应用

    Istio简介 2.1.istio架构 实际上Istio 就是 Service Mesh 架构的一种实现,服务之间的通信(比如这里的 Service A 访问 Service B)会通过代理(默认是 ...

  9. 超详细【Uboot驱动开发】(一)uboot基础了解

    一.uboot基础了解 1. U-boot是什么 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM.8xxROM.PPCBOOT逐步发展演化而来的 开 ...

最新文章

  1. 安装mysql5.7出现问题_转载---安装mysql5.7,遇到的问题
  2. SQL Server插入中文出现乱码??的解决办法
  3. 【55】让自己熟悉Boost
  4. mysql之 explain、optimizer_trace 执行计划
  5. axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
  6. Tomcat(二):server.xml配置
  7. Python Json读写(json模块)(转载)
  8. soapUI接口测试工具所有版本下载地址
  9. MATLAB五子棋游戏(双人对战,可悔棋)
  10. 生产计划排产软件三大操作流程
  11. C语言函数题-输入多个单词,统计以指定字母开头的单词个数
  12. 被遗忘的设计模式——空对象模式(转载)
  13. JavaSE-饿了么项目实战
  14. 微信小程序canvas绘制圆形头像
  15. 香鸡排三部曲:完结篇
  16. 去年写的代码大全笔记(其实是摘记)
  17. 基于C++的俄罗斯方块游戏的开发与设计
  18. 打印机文件服务器主机,打印机服务器主机名称是什么原因
  19. Android性能调优实例
  20. Mac下移动硬盘的分区以及TimeMachine的备份

热门文章

  1. SECS半导体设备通讯-1 SECS的基本概念
  2. day - 8 作业
  3. 双击CAD图标后进入南方Cass界面的解决方法
  4. Corral the Cows POJ - 3179(二分+前缀和+离散化)
  5. 网络爬虫---爬取MOOC课程信息并做一个可视化
  6. iOS基于jenkins打包+上传蒲公英+钉钉群通知
  7. 高效学习-端正学习态度
  8. UE4之Spline
  9. SEO代码优化:关于html中title和mate格式
  10. 2018ACM暑期多校联合训练参(bao)赛(zha)记