会话期间捕捉的、带有位置跟踪信息的视频图像。
@interface ARFrame : NSObject
概念
一个正在运行的会话不断地从设备的摄像头捕获视频帧,而 ARKit 分析捕获以确定用户在世界中的位置。 ARKit 可以通过两种方式以 ARFrame 的形式向您提供这些信息:
(1) 有时,通过访问 ARSession 对象的 currentFrame
(2) 不断地,作为帧流通过 session:didUpdateFrame: 回调
要在 ARKit 捕获它们时自动接收所有帧,请将您的对象之一设置为应用程序 ARSession 的委托。
每个帧都可以包含其他数据,例如 EXIF (exifData),或基于您启用的任何特定 frameSemantics 的数据。
访问相机数据
camera
有关用于捕获帧的相机位置、方向和成像参数的信息。
capturedImage
包含相机捕获的图像的像素缓冲区。
timestamp
捕获帧的时间。
cameraGrainIntensity
一个值,用于指定相机颗粒纹理中存在的颗粒量。
cameraGrainTexture
由 ARKit 创建的可平铺 Metal 纹理,以匹配当前视频流的视觉特征。
exifData
捕获图像的辅助数据。
访问场景数据
lightEstimate
基于相机图像的照明条件估计。
- displayTransformForOrientation:viewportSize:
返回一个仿射变换,用于在标准化图像坐标和适合在屏幕上渲染相机图像的坐标空间之间进行转换。
rawFeaturePoints
ARKit 用于执行世界跟踪的场景分析的当前中间结果。
capturedDepthData
在前置摄像头体验中捕获的深度数据。
capturedDepthDataTimestamp
捕获帧的深度数据(如果有)的时间。
sceneDepth
设备后置摄像头与 AR 体验中现实世界对象之间距离的数据。
smoothedSceneDepth
设备后置摄像头与现实世界对象之间的距离测量平均值,可在 AR 体验中创建更流畅的视觉效果。
跟踪现实世界并与之互动
anchors
表示场景中跟踪的位置或检测到的对象的锚点列表。
- raycastQueryFromPoint:allowingTarget:alignment:
获取屏幕点的光线投射查询。
- hitTest:types:
在捕获的相机图像中搜索真实世界的对象或 AR 锚点。(已被废弃)
检查世界映射状态
worldMappingStatus
为此框架生成或重新定位世界地图的可行性。
ARWorldMappingStatus
描述 ARKit 如何彻底映射给定帧中可见区域的可能值。
检查人
detectedBody
ARKit 在相机图像中识别的身体的屏幕位置信息。
ARBody2D
ARKit 在摄像头馈送中识别的人的屏幕空间表示。
segmentationBuffer
包含像素信息的缓冲区,用于识别用于遮挡虚拟内容的相机源中的对象形状。
estimatedDepthData
一个缓冲区,表示您用于遮挡虚拟内容的相机源的估计深度值。
ARSegmentationClass
像素的分类,它定义了一种用于遮挡应用程序虚拟内容的内容类型。
评估地理跟踪条件
geoTrackingStatus
会话捕获帧时与地理跟踪有关的会话条件。
ARGeoTrackingStatus
地理跟踪当前状况可能的状态、准确性和原因。