美文网首页GitHub 中文社区ARKitARKit
ARKit框架详细解析(一)—— 基本概览

ARKit框架详细解析(一)—— 基本概览

作者: 刀客传奇 | 来源:发表于2017-09-27 16:54 被阅读207次

    版本记录

    版本号 时间
    V1.0 2017.09.27

    前言

    苹果最近新出的一个API就是ARKit,是在2017年6月6日,苹果发布iOS11系统所新增框架,它能够帮助我们以最简单快捷的方式实现AR技术功能。接下来几篇我们就详细的对ARKit框架进行详细的解析。

    AR技术

    在讲ARKit之前,我们先了解一下AR技术。增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。

    一个最简单地AR场景实现所需要的技术以及步骤包含如下:

    • 多媒体捕捉现实图像:如摄像头。
    • 三维建模:3D立体模型。
    • 传感器追踪:主要追踪现实世界动态物体的六轴变化,这六轴分别是X、Y、Z轴位移及旋转。其中位移三轴决定物体的方位和大小,旋转三周决定物体显示的区域。
    • 坐标识别及转换:3D模型显示在现实图像中不是单纯的frame坐标点,而是一个三维的矩阵坐标。这基本上也是学习AR最难的部分,好在ARKit帮助我们大大简化了这一过程。

    除此之外,AR还可以与虚拟物体进行一些交互。


    ARKit基本

    ARKit是2017年6月6日,ios11测试版本发布时新增加的框架,可以帮助我们以最简单的方式实现AR技术功能。ARKit提供了两种AR技术:

    • 基于3D场景(sceneKit)实现的增强现实。
    • 基于2D场景(SpritKit)实现的增强现实。

    一般主流都是基于3D实现AR技术,ARKit不仅支持3D游戏引擎sceneKit,还支持2D游戏引擎SpritKit。

    需要注意的是:

    • 虽然ARKit框架中视图对象继承于UIView,但是由于目前ARKit框架本身只包含相机追踪,不能直接加载物体模型,所以只能依赖于游戏引擎加载ARKit。
    • ARKit是ios11推出的框架,但并不是所有的ios11系统都可以使用,因此必须是A9及以上才能够使用,iphone6s开始使用A9处理器,也就是说iphone6及其以上的机型就不能使用这个框架了。
    • 开发环境需求:
      • Xcode版本:Xcode9及以上
      • iOS系统:iOS11及以上
      • iOS设备:处理器A9及以上(6S机型及以上)
      • MacOS系统:10.12.4及以上(安装Xcode9对Mac系统版本有要求)

    ARKit框架

    集成iOS设备摄像头和运动功能,在您的应用程序或游戏中产生增强的现实体验。

    增强现实(AR)描述了将设备的相机中的2D或3D元素添加到实时视图的用户体验,使得这些元素似乎居住在现实世界中。 ARKit结合了设备运动跟踪,相机场景拍摄,高级场景处理和显示便利,简化了AR体验的任务。

    重要说明:ARKit需要具有A9或更高版本处理器的iOS设备。要使应用程序仅在支持ARKit的设备上可用,请在应用程序的Info.plistUIRequiredDeviceCapabilities部分中使用arkit键。 如果增强现实是应用程序的辅助功能,请使用isSupported属性来确定当前设备是否支持您要使用的会话配置。

    下面我们先看一下ARKit框架的结构和组成。

    下面按照功能模块对框架进行详细分解和说明

    1. First Steps

    2. World-Based AR Experiences

    3. Face-Based AR Experiences

    • ARFaceAnchor
      • 关于脸部跟踪AR会话中检测到的脸部的姿势,拓扑和表情的信息。

    4. Standard Views

    • ARSCNView

      • 用于显示使用3D SceneKit内容增强相机视图的AR体验的视图。
    • ARSKView

      • 用于显示使用2D SpriteKit内容增强相机视图的AR体验的视图。

    5. Custom Views

    6. Real-World Objects and Positions

    • ARHitTestResult

      • 通过检查AR会话的设备摄像机视图中的一个点找到有关现实世界表面的信息。
    • ARAnchor

      • 可用于将对象放置在AR场景中的现实世界的位置和方向。
    • ARTrackable

      • ARKit跟踪改变位置和方向的场景中的真实世界对象。

    7. Camera and Scene Details

    • ARFrame

      • 作为AR会话的一部分捕获的视频图像和位置跟踪信息。
    • ARCamera

      • 关于AR会话中捕获的视频帧的摄像机位置和成像特性的信息。
    • ARLightEstimate

      • 与AR会话中捕获的视频帧相关联的估计场景照明信息。
    • ARDirectionalLightEstimate

      • 在面部跟踪AR会话中与捕获的视频帧相关联的估计环境照明信息。

    8. Reference

    后记

    未完,待续~~~

    相关文章

      网友评论

      本文标题:ARKit框架详细解析(一)—— 基本概览

      本文链接:https://www.haomeiwen.com/subject/gaavcxtx.html