ARKit基础
ARKit 基础
ARKit = AVFoundation + CoreMotion + CoreML
图像/3D检测识别跟踪、人脸遮挡OK?、同时开前后摄像头、多人协作、
景深、地理位置锚点
不包含图形渲染API,使用RealityKit、SceneKit、SpriteKit、Metal等
不足
- 在运动中做运动跟踪
- 跟踪动态环境(湖面)
- 热漂移(手机升温)
- 昏暗环境
ARSession
管理AR应用的状态和整个生命周期,ARKit API 的主要入口
ARAnchor(AR锚点)
无法添加虚拟元素
将虚拟物体固定到AR场景中
工作原理:
视觉校准技术,使锚点姿态不随着时间变化
使用:
1. 在可跟踪对象上(平面、人脸等)创建锚点
2. 将虚拟物体链接到锚点
使用场景:
- 虚拟物体“焊接”到某物体上
- 姿态不变
- 几个虚拟物体相对位置不变、独立性
- 提高跟踪性
注意:
- 尽可能重复使用锚点(独立锚点的对象可以 平移/旋转)
- 保持物体靠近锚点(1m)
- 分离未使用的锚点
种类:
- ARPlaneAnchor 平面
- ARImageAnchor 2D图像
- ARObjectAnchor 3D物体
- ARFaceAnchor 人脸(姿态、表情)
- ARBodyAnchor 人体
- ARParticeipantAnchor 多人共享的
- AREnvironmentProbeAnchor 环境光探头
- ARMeshAnchor 使用LiDAR重建场景的场景网格的Anchor
- ARGeoAnchor 地理位置信息
ARFrame(AR帧)
相比于视频流包含了与AR有关的参数
RealityKit
专为AR设计
主要功能:
- 渲染(反射、阴影)
- 动画(骨骼/变换 动画)
- 物理仿真
- 网络同步:整合了近距离通信框架
- 实体组件:避免了多继承(swift不支持)的维护问题
- 3D音效
- 其他很多功能自动处理
体系架构:
- ARView
- 将渲染场景呈现给用户的一个窗口
- 都包含Scene实例
- 处理输入交互
- Scene
- 放置实体对象的容器
- 创建ARView时自动创建
- 可通过ARView的属性访问
- AnchorEntity
- 继承自Entity类
- 挂载了AnchorComponent组件
- Entity
- AR应用最基本组成元素
- 遵循Component协议、包含components集合,用于挂在各类组件
- 层次结构可以保存到文件中
- 预定义了8类实体
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wonderland!
评论