ARkit简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARkit简介相关的知识,希望对你有一定的参考价值。
ARKit简介
AR(Augment Reality:增强现实)大家都知道,就是将3D模型渲染在摄像头图像之上,混合渲染达到虚拟物品就好像是现实的一部分。ARKit解决了模型定位难的问题,结合CoreMotion运动数据与图像处理数据,来建立一个非常准确的SLAM系统,构建虚拟世界和现实世界之间的映射。同时能够分析环境自动给模型添加光源,实际效果还是比较惊艳的。
从结构上看,ARKit提供了一套简单易用的AR框架,但框架之外,需要很多的三维空间、游戏编程、3D模型、GPU渲染的知识来理解AR技术。ARKit最重要的两个类是ARSession
与ARSCNView
类似与AVFoudation,ARKit中由ARSesseion类来配置SLAM系统的建立。设置RSession的配置选项为ARWorldTrackingSessionConfiguration来追踪设备的方向与位置,并且能够检测平面这里有个彩蛋,后面文章说明
。这个选项只有A9处理器之上才支持。其他型号处理器(6S以下)只能追踪设备的方向。
ARKit的提供了自带的两个渲染类:ARSCNVie
w和ARSKView
,后者用来渲染2D模型。之前鲜有问津的SceneKit(3D引擎)算是有了用武之地。这两个类会自动开启摄像头并建立虚拟空间与现实空间之间的映射。同时ARKit也支持自定义用OpenGL或Metal实现渲染类
,但要自己管理与ARSession之间的通信,同时要遵循ios GPU命令不能在后台调用
的规则。
其他比较重要的类有
ARAnchor
、ARHitTestResult
、ARFrame
、ARCamera
- ARAnchor
世界中点,可以用来放置虚拟物品,也可以代指现实物品的放置位置。ARAnchor在世界中是唯一的,并包含仿射变换的信息。
- ARHitTestResult
HitTest的返回,世界中的ARAnchor。
与UIKit中的hitTest不同,ARKit的HitTest以设备方向配合视图坐标,建立一条世界中的射线,所有在射 线上的ARAnchor, 会以由近到远的方式返回。此外SCeneKit的HitTest返回虚拟物品。
- ARFrame
摄像头视频帧的包装类,包含位置追踪信息、环境参数、视频帧。重点是它包含了苹果检测的特征点,通过rawFeaturePoints可以获取,不过只是特征的位置,具体的特征向量并没有开放。
- ARCamera
场景中的摄像机,用来控制模型视图变换和投影变换。同时提供6DOF(自由度信息,方向+位置)与追踪信息
- 相关ARkit的介绍还有很多,我就不一一说了,下一遍开始实战
以上是关于ARkit简介的主要内容,如果未能解决你的问题,请参考以下文章
2021-2022-1 北京化工大学程序设计月赛 - 问题 G: 游戏的彩蛋 - 题解 - 哈希讲解