早在乔帮主时代,因为Android对iOS的模仿,怒不可遏的乔布斯曾经发誓会“用尽最后一口气”和苹果现金储备中的“每一分钱”,来“纠正这个错误。”“我要摧毁Android,因为这是偷来的产品,我要发动一场热核战争。。。”

帮主逝世后,谦谦君子的Cook选择了和解。如今,Android已经在市场规模上盖过了iOS,但这场热核战争似乎又要因为一个新的技术而重启。

在WWDC 2017的Keynote上,苹果新推出的ARKit和CoreML着实让所有人为之震惊。CoreML还好,暂时没有表现出超越其它竞争对手的实力。但是ARKit就不一样了,对比传统的AR SDK,包括Vuforia和Wikitude,虽然称不上秒杀,但碾压是毫无疑问的了。而坐观Google自家的Tango,包括Intel的Realsense方案,都需要定制化硬件的配合,显然会走入一个死胡同,无法在很短的时间内步入万户千家。特别是考虑到Google的基因里根本就缺少硬件产品设计的元素,这一点就更为明显了。

眼看着苹果的新品发布会要来了,Google显然有点坐不住了。因为如果仅仅是iPhone外观设计的变化,或者加上一些华而不实的硬件功能,对Google来说无关痛痒。但是ARKit和传闻中的手机AR模块非同小可,一个新的平台正在冉冉升起。

于是Google又发大招了,今天刚刚推出的ARCore基本上可以看做就是苹果ARKit的对标SDK。

按照Google 官方的说法(https://developers.google.com/ar/discover/),ARCore使用三大关键技术来实现Android手机上的增强现实:

1.Motion tracking(运动追踪)

可以让手机了解并追踪其在现实世界中的位置

而ARKit也可以使用摄像头和运动传感器来检测设备位置的变化。

2.Environmental understanding(环境理解)

可以让手机检测到类似地板或咖啡桌的平面大小和位置。

这个功能和ARKit中ARWorldTrackingConfiguration所提供的Plane Detection功能如出一辙。

3.Light estimation(光线评估)

可以让手机评估真实世界环境中的光照条件。

这个功能和ARKit中ARWorldTrackingConfiguration所提供的Light Estimation功能如出一辙。

这样一看,基本上ARCore可以说完全复制了ARKit的三大核心功能,难怪最近Wikitude来了个超级大降价~

当然,和处于beta版的ARKit一样,ARCore目前处于early preview阶段,也就是试用阶段。

ARCore目前所支持的设备如下:

1.Google Pixel和Pixel XL

2.Samsung Galaxy S8 (SM-G950U, SM-G950N, SM-G950FD,

SM-G950FD, SM-G950W, SM-G950U1)

后续ARCore将支持更多运行Android N系统的设备。

那么ARCore的工作原理是怎样的呢?

和ARKit类似,ARCore主要做了两件事:追踪移动设备的位置,并构建其对真实世界的理解。后者在行业里面有个类似的名词叫SLAM(Simultaneous Localization And Mapping,即时定位与地图构建),在机器人领域得到广泛的应用。虽然ARCore和ARKit的实时场景构建功能相比真正意义上的SLAM还有所差距,但显然已经成了今后的大趋势。

ARCore使用手机的摄像头来识别标识点,也就是特征点,并追踪这些特征点的位置变化。通过读取手机内部传感器的信息和特征点的变化,ARCore可以判断出手机在空间中的位置和朝向。

除了识别关键特征点,ARCore还可以检测平面,比如桌子或地板。此外,ARCore还可以评估区域中的光照条件。通过这些信息,ARCore可以对真实世界构建起自己的理解(或许Android机器人的第一步就在这里?)

使用以上信息,ARCore可以让我们在真实世界中放置虚拟的的物体,或是无缝集成其它信息。关于ARCore的更多工作原理信息,可以查看fundamental concepts。

ARCore的开发环境支持

目前ARCore提供了四种开发环境的选择:

1.Getting started with Android Studio

2.Getting started with Unity

3.Getting started with Unreal

4.Getting started with Web

关于以上四个环境下的开发,可以分别参考相关的文档。

(注:2017年8月31日修改,此前文中提到的ARWorldTrackingSessionConfiguration在最新的iOS 11 beta8中已被废弃,因此在文中更改为ARWorldTrackingConfiguration。)

——原文首发:笨猫快乐学编程(知乎)   作者:王寒

延伸阅读

《Unity AR/VR开发》

从新手到专家

ISBN:978-7-111-58463-6

作 者:王寒 曾坤 张义红 著

定 价:99.00元

出版时间:2018/01

内容简介:

资深专家与社区鼎力推荐,知名专家撰写,从入门到进阶,贯穿热点实战与设备;细化到编程语言、脚本与设计,从Unity应用策划到发布,真正贴近实际AR/VR开发。

点击“阅读原文”查看书籍详情

ARCore vs ARKit-热核战争的重启?相关推荐

  1. Web开发如何实现Tomcat等服务器热部署不用重启

    Web开发如何实现Tomcat等服务器热部署不用重启 听语音 | 浏览:354 | 更新:2016-05-28 11:18 在进行java web开发的时候,对类改动一些代码后,通常就需要对服务器比如 ...

  2. 如何将Vufroria 、ARCore和ARkit结合使用

    如果想使用Vuforia的卡牌识别,又想加入ARCore和ARKit的平面识别功能.解决办法就是将Vuforia与AR Foudation结合使用. 环境配置     Unity版本:2018.4.2 ...

  3. android 热修复 需要重启应用嘛?_Android热修复方案盘点

    前言 上一个大的系列文章叫 "手把手讲解", 历时10个月,出产博文二十余篇,讲解细致,几乎每一篇都提供了详实的原理讲解,提供了可运行 githubDemo,并且针对Demo中的关 ...

  4. android ar人脸贴图,ARCore与ARKit实现人脸贴纸、更换材质等动画效果

    近两年市面上出现了很多有关有关美颜滤镜.贴纸等各种贴纸效果的相机出现,由于项目的需要调研了google开源的一个能够提供3D角度的ARCore框架,本人也结合ARKit在iOS手机上实现了类抖音的效果 ...

  5. idea热部署与重启

    热部署 1. 修改pom.xml 在project->dependencies下添加spring-boot-devtools依赖 在project->build->plugins下添 ...

  6. eclipse修改java热部署免重启tomcat在Host标签下增加Context直接将docBase指定为项目的WebContent路径

    为了避免每次修改java文件eclipse都自动重启耗时较长,研究了网上方法,在eclipse+tomcat7本机实践了下可行. 原理:将eclipse工程的WebContent直接作为部署目录,你的 ...

  7. mybatis动态更新xml文件后热部署,不重启应用的方法

    mybatis应用程序,由于是半自动化的sql, 有大量的sql是在xml文件中配置的,而在开发程序的过程中,通常需要边写sql变调试应用.但在默认情况下,xml文件里配置的sql语句是被放入到缓存中 ...

  8. 谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?

    [转] https://www.leiphone.com/news/201709/hioiZlgdXIj9fFex.html 雷锋网按:本文作者为 Matt Miesnieks,目前担任 6D.ai ...

  9. 大神解读:谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?

    转自雷锋网:点击打开链接 原标题:大神解读:谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪? 雷锋网按:本文作者为 Matt Miesnieks,目前担任 6D.ai 的 C ...

最新文章

  1. mysql普通索引标记_Mysql 索引
  2. Cenetos 下sudo的使用
  3. Java集合框架上机练习题:用户分别从两个文本框输入学生的姓名和分数.............
  4. 聊聊JVM(九)理解进入safepoint时如何让Java线程全部阻塞
  5. 集合框架 Queue---ArrayBlockingQueue
  6. 学习笔记----linux下编译samba
  7. 持续集成部署Jenkins工作笔记0005---应用服务器设置账号密码说明
  8. Matlab之字符串的查找(findstr)与替换(strrep)
  9. 文件与i o流java实_JavaFile I/O流
  10. matlab小波工具箱讲解,Matlab中的小波分析工具箱详解.ppt
  11. RequestDispatcher请求转发方法
  12. 禾赛科技2022数字芯片提前批笔试
  13. 白马非马----继承 (转)
  14. 开源项目推荐系列(短信网关)
  15. 英语语法总结--主谓一致
  16. 电商派争夺零售派:传统百货扎堆试水O2O
  17. 爪哇国新游记之三十二----邮件发送
  18. 5G室内定位来了,化工厂人员定位,电厂室内定位都有用它!-新导智能
  19. 思科ASA防火墙:控制防火墙不让访问指定网站
  20. android 10.0 禁止安装apk

热门文章

  1. 实验1 软件质量保证标准的分类
  2. java处理特殊图片格式转为jpg
  3. oh my zsh 主题详情
  4. flash builder4.7 找不到IOS设备解决办法
  5. 雪鹰领主服务器维护,《雪鹰领主》7月11日停机维护更新公告
  6. python github 12306 文贤平_GitHub - itsmartkit/12306-Ticket-Booking: 12306自动抢票系统(2020-01-10)...
  7. 教你如何提升工作积极性
  8. 我的世界服务器显示不了称号,我的世界怎么在名字后面加称号_我的世界怎么设置称号...
  9. 独家美食 | 只有在日本才能吃到的铁路便当
  10. python3.7 报 “ModuleNotFoundError: No module named ‘_bz2‘” 的错误