本文译自官方文档 ARCamera
,不足之处,请纠正。
ARCamera 能拿到当前相机的位置,在 AR 会话中,捕获视频帧的成像图像。
一、简介
ARCamera 是一个相机,它是连接虚拟场景与现实场景之间的枢纽。在ARKit中,它是捕捉现实图像的相机,在SceneKit中它又是3D虚拟世界中的相机。(一般第一人称3D游戏,主角其实就是一个3D相机,我们电脑屏幕看到的画面就是这个相机捕捉的画面)。
一般我们无需去创建一个相机,因为当我们初始化一个AR 会话时,他会为我们默认创建一个相机,而且这个相机就是摄像头的位置,同时也是3D世界中的原点所在(x=0,y=0,z=0)
注意:ARCamera的API一般我们无需关心,因为ARKit会默认帮助我们配置好
二、API
1. 处理追踪状态
-
trackingState
相机追踪状态(在下方会有枚举值介绍) -
ARTrackingState
相机追踪状态(在下方会有枚举值介绍)
//相机追踪状态枚举
typedef NS_ENUM(NSInteger, ARTrackingState) {
/** 不被允许 */
ARTrackingStateNotAvailable,
/** 最小 */
ARTrackingStateLimited,
/** 正常. */
ARTrackingStateNormal,
}
-
trackingStateReason
追踪运动类型(在下方会有枚举值介绍)。 -
ARTrackingStateReason
追踪运动类型(在下方会有枚举值介绍)。
/**
追踪运动类型
*/
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
typedef NS_ENUM(NSInteger, ARTrackingStateReason) {
/** 无. */
ARTrackingStateReasonNone,
/** 运动. */
ARTrackingStateReasonExcessiveMotion,
/** 脸部捕捉. */
ARTrackingStateReasonInsufficientFeatures,
} NS_REFINED_FOR_SWIFT;
2. 检查相机的地理位置
-
transform
4x4矩阵表示相机位置。 -
eulerAngles
相机方向(旋转)的矢量欧拉角
分别是x/y/z -
projectionMatrix
投影矩阵 -
- projectionMatrixWithViewportSize:orientation:zNear:zFar:
创建相机投影矩阵
3. 检查图片的参数
-
imageResolution
摄像头分辨率 -
intrinsics
2 d 相机平面和三维世界坐标的矩阵之间转换。
网友评论