美文网首页
ARKit简单介绍

ARKit简单介绍

作者: 狂风被雨淋 | 来源:发表于2017-07-19 16:49 被阅读61次

    首先,ARKit目前不支持前置摄像头。

    ARKit主要由两部分功能组成:

    • 利用摄像头探索真实世界建立空间坐标系;

    • 在真实世界渲染出虚拟3D模型。

    其中第二部分的渲染能力不是新推出的,而是利用已有的一些框架,如下:

    SceneKit -- ios8推出的3D图形游戏框架,也是目前ARKit开发主要会使用的渲染3D模型的框架。引用官方的描述: Create 3D games and add 3D content to apps using high-level scene descriptions. Easily add animations, physics simulation, particle effects, and realistic physically based rendering.

    SpriteKit -- ios7推出的2D图形游戏框架,由于是2D的,在ARKit中实际的应用可能不多。

    Metal -- iOS8推出的接口,是一个支持GPU加速的3D绘图API,负责和3D绘图硬件交互。两大最著名第三方游戏引擎Unreal 和 Unity 也已支持Metal。

    第一部分的利用摄像头将拍摄到的现实世界空间化的功能,也是基于一些已有的框架,如AVFoundation的摄像头模块,CoreMotion重力感应,加速仪,陀螺仪等,结合一些AR相关的图像算法,来实现的。

    相关类的关系树如下:

    image.png

    ARKit工作流程:

    • 创建AR视图类ARSCNView,初始化;
    • 创建一个AR配置类,来启动视图类里的AR摄像头;
    • 摄像头将初始位置的坐标设定为世界原点,来建立一个三维坐标系;
    • 摄像头可以探测到真实世界里面的水平面,并回调。可以在平面上放置虚拟物体。

    也可以直接将虚拟物体放到自己指定的坐标上,但这样会像漂浮在空中一样,没有放在平面上那种真实的感觉。

    image.png

    ARKit与谷歌Tango的对比:

    • Tango首先需要手机集成它的硬件模块:超广角鱼眼镜头,红外传感器等,这使得只有少量的最新款安卓手机才具有AR的功能。谷歌通过硬件来达到AR中运动追踪、深度感知和区域学习的能力。

    • ARKit只通过单个摄像头,依靠强大的算法实现了AR的功能,并从演示的demo以及实际运行测试工程来看,定位非常稳定且准确,渲染的Demo模型很复杂,但是感觉很流畅,说明实时性和算法能耗都深度优化过。

    • 由于硬件上的不足,ARKit可能无法用于复杂场景和功能,但好处却是让A9及以上机型瞬间变成了AR设备,用户不需要购买最新的机型;而在即将发布的iPhone8中很可能会配备配合AR的双摄像头,红外线传感器等,使得ARKit在性能上也赶超Tango。

    相关文章

      网友评论

          本文标题:ARKit简单介绍

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