ARkit简介

来源:互联网 发布:tomcat域名重定向设置 编辑:程序博客网 时间:2024/05/21 09:18

ARKit简介

AR(Augment Reality:增强现实)大家都知道,就是将3D模型渲染在摄像头图像之上,混合渲染达到虚拟物品就好像是现实的一部分。ARKit解决了模型定位难的问题,结合CoreMotion运动数据与图像处理数据,来建立一个非常准确的SLAM系统,构建虚拟世界和现实世界之间的映射。同时能够分析环境自动给模型添加光源,实际效果还是比较惊艳的。
从结构上看,ARKit提供了一套简单易用的AR框架,但框架之外,需要很多的三维空间、游戏编程、3D模型、GPU渲染的知识来理解AR技术。ARKit最重要的两个类是ARSessionARSCNView

这里写图片描述

类似与AVFoudation,ARKit中由ARSesseion类来配置SLAM系统的建立。设置RSession的配置选项为ARWorldTrackingSessionConfiguration来追踪设备的方向与位置,并且能够检测平面这里有个彩蛋,后面文章说明。这个选项只有A9处理器之上才支持。其他型号处理器(6S以下)只能追踪设备的方向。

ARKit的提供了自带的两个渲染类:ARSCNView和ARSKView,后者用来渲染2D模型。之前鲜有问津的SceneKit(3D引擎)算是有了用武之地。这两个类会自动开启摄像头并建立虚拟空间与现实空间之间的映射。同时ARKit也支持自定义用OpenGL或Metal实现渲染类,但要自己管理与ARSession之间的通信,同时要遵循iOS GPU命令不能在后台调用的规则。

其他比较重要的类有ARAnchorARHitTestResultARFrameARCamera

  • ARAnchor

世界中点,可以用来放置虚拟物品,也可以代指现实物品的放置位置。ARAnchor在世界中是唯一的,并包含仿射变换的信息。

  • ARHitTestResult

HitTest的返回,世界中的ARAnchor。
与UIKit中的hitTest不同,ARKit的HitTest以设备方向配合视图坐标,建立一条世界中的射线,所有在射 线上的ARAnchor, 会以由近到远的方式返回。此外SCeneKit的HitTest返回虚拟物品。

  • ARFrame

摄像头视频帧的包装类,包含位置追踪信息、环境参数、视频帧。重点是它包含了苹果检测的特征点,通过rawFeaturePoints可以获取,不过只是特征的位置,具体的特征向量并没有开放。

  • ARCamera

场景中的摄像机,用来控制模型视图变换和投影变换。同时提供6DOF(自由度信息,方向+位置)与追踪信息

  • 相关ARkit的介绍还有很多,我就不一一说了,下一遍开始实战
原创粉丝点击