ARKit

因为之前 公司的业务一直会用到AR相关的东西 所以IOS11 发布会之后,最吸引我的就是全新的ARKit。在这之前一直尝试过很多种客户端native的AR解决办法,总结下来相对靠谱的方法是使用 Vuforia + SceneKit 来解决,优点是基于ios原生的游戏引擎来结合AR开发比较契合于现在多数AR的使用场景的,但是缺件点就是 对于系统的硬性要求(IOS8 以下无法获得支持),而Vuforia基于C语言的底层,使得开发难度大幅提升。而ARKit的出现无疑是在AR解决方面提供了一个不错的选择。

ARKit 并不依赖于硬件,也就是说支持iOS11的设备都能实现对AR的支持,以现在IOS11的市场覆盖率来说,可以不需要考虑向下兼容的问题。目前版本已经升级到了1.5 增加了图片识别功能,之后发布的IOS12中会迎来2.0的更新。

下面我们来了解一下 开发AR项目必备的一些知识

  • 右手坐标系 (right-handed convention)

所谓的右手坐标系 就是以右手拇指为x轴的正向,食指为y轴的正向,中指为z轴的正向。


右手坐标图.jpg

同样的如果反过来,就是左手坐标系
IOS的AR开发中 统一用的都是右手坐标

  • 世界追踪(World Tracking)

为了在真实空间和虚拟空间之间建立对应关系,ARKit使用了一种称为视觉惯性测距法的技术。此过程将来自iOS设备的运动感应硬件的信息与设备相机可见场景的计算机视觉分析相结合。 ARKit识别场景图像中的显着特征,跟踪视频帧中这些特征的位置差异,并将该信息与运动感测数据进行比较。最终在屏幕上呈现出虚拟位置的高精度模型。

同时ARKit会检测摄像机图像中的平面并报告其位置和大小。可以将虚拟模型放置于平面之中。1.5之后支持了垂直平面

关于平面检测,首次检测需要一定的时间,并且当你在场景中随着摄像头不断的移动 ARKit会自动计算和修正平面。

主要类

  • ARSession

你可能感兴趣的:(ARKit)