官方文档传送门: https://developer.apple.com/documentation/arkit/understanding_augmented_reality
ARKit
在你的iOS应用程序或游戏中集成相机和运动特性产生增强现实体验。
概述
增强现实(AR)从设备的摄像机中添加2D或3D元素到实时场景中,让用户感觉到这些元素看起来融合到了真实的世界中。ARkit结合装置的运动跟踪、相机的场景捕捉、先进的现场处理、合理的展示特性从而完成简单快速构建一个AR体验的任务。
重要提示
你的iOS设备必须是A9或A9以上的芯片才能支持AR(6s,iPad Pro 等)
如果你想在仅支持ARKit的设备上使用你的APP,可在你的应用程序中使用ARkit key 在你的info.plist中配置UIRequiredDeviceCapabilities。如果AR是你的应用程序的第二展示策略(兼容其他iOS机型),使用判断设备是否支持属性来确定当前设备是否支持要将要使用的AR会话。
理解增强现实
约定 : 本文中单独提到的"世界"指AR世界(现实世界与虚拟世界融合的第三世界形态) 纯个人理解,有不同见解的欢迎留言探讨。
通过探索概念,特性,和最佳的实践来构建伟大AR体验。
-
概览
官网示例图
能够创建和追踪虚拟的模型世界与用户现实的居住环境之间的对应关系,是对任何AR体验的最基本特性的定义和要求。当应用程序展示的内容和相机的实时场景同步,用户的体验得到了增强。这种虚拟的幻境成为了真实世界的一部分就是你想要的世界形态。
-
世界追踪如何运作
ARKit使用视觉惯性测距技术来创建一个现实和虚拟空间之间的对应关系。这个过程结合了从iOS设备的运动传感硬件的感知和计算机通过摄像头对场景的视觉分析。ARKit通过识别场景图像的显著特征,追踪视频在帧级别的特征差异的位置,把该信息与运动传感数据比较。得到设备的位置和运动的高精度模型。
世界追踪还使用命中测试方法(参见 ARHitTestResult 类)分析和理解场景的内容。找到与照相机图像中与真实世界表面相对应的某个点。如果你允许使用平面检测并且配置了会话,ARkit可以检测在相机的图像的平面并和报告他们的位置和尺寸。您可以使用碰撞测试结果或检测到的平面来放置或交互场景中的虚拟内容。
-
最佳实践和局限
世界追踪不是一门绝对精确的科学,但是它通常能够做出精准的计算,从而带来印象深刻的AR体验。然而,它依赖设备对自然环境的细节捕捉,但是这些环境不总是一致的或者很难实时测量。会有一定程度的误差。想构建一个高质量的AR体验,就不能忽略这些警告和提示
利用可预见的光照环境来构建AR 体验。
世界追踪涉及图像分析,它要求图片要清晰。当摄像头捕捉不到细节,追踪的效果就会降低。例如摄像头指向的是一个空白的墙或者昏暗的环境。
用追踪的质量数据来为用户提供调节反馈。
世界追踪和图像的分析和设备的移动相关。当设备移动的时候ARKit对于场景有更好的分析,即使设备只是细微的移动。过度的移动 - 过远、过快、抖动的行为会造成追踪质量降低。ARCamera
类提供了追踪状态信息,你可以通过UI来提示用户怎么避免低质量的追踪场景
及时的允许平面检测可以得出清晰的结果,你也可以禁用平面检测来得到你想要的结果。
平面检测的结果会随时变化。当一个平面第一次被检测的时候,它的位置和范围可能是不准确的,原因是该平面停留的是一个过时的场景,ARKit会对它的位置和范围从新估量。当场景中出现了较大的平面,ARKit会持续的改变平面的锚点位置、范围、transform,直到你使用这个平面放置内容。(这一段还有待斟酌)
持续更新中
实战篇
玩转ARKit_01初体验 //www.greatytc.com/p/ef180f75ba46