ARCamera

354 阅读2分钟

给定帧中的摄像头位置和影像特征信息。

您从相机信息来自 camera property of each ARFrame ARKit交付。

处理跟踪状态

var trackingState: ARCamera.TrackingState

当相机捕捉帧时,可以进行位置跟踪的一般质量。

enum ARCamera.TrackingState

位置跟踪质量的值,以及跟踪质量有限时可能的原因。

case notAvailable

相机位置跟踪不可用。

case limited(ARCamera.TrackingState.Reason)

跟踪是可用的,但结果的质量值得怀疑。

enum ARCamera.TrackingState.Reason

位置跟踪质量有限的原因。

case normal

相机位置跟踪正在提供最佳效果。

检查相机几何形状

var transform: simd_float4x4

相机在世界坐标空间中的位置和方向。

var eulerAngles: simd_float3

相机的方向,以滚动、音高和偏航值表示。

检查成像参数

var imageResolution: CGSize

捕获相机图像的宽度和高度(以像素为单位)。

var intrinsics: simd_float3x3

在2D相机平面和3D世界坐标空间之间转换的矩阵。

应用相机几何学

var projectionMatrix: simd_float4x4

适合渲染3D内容的变换矩阵,以匹配相机捕获的图像。

func projectionMatrix(for: UIInterfaceOrientation, viewportSize: CGSize, zNear: CGFloat, zFar: CGFloat) -> simd_float4x4

返回一个适合渲染3D内容的转换矩阵,以匹配相机使用指定参数捕获的图像。

func viewMatrix(for: UIInterfaceOrientation) -> simd_float4x4

返回一个从世界空间转换为相机空间的转换矩阵。

func projectPoint(simd_float3, orientation: UIInterfaceOrientation, viewportSize: CGSize) -> CGPoint

返回ARKit检测到的3D世界空间的点投影到渲染场景的视图的2D空间。

func unprojectPoint(CGPoint, ontoPlane: simd_float4x4, orientation: UIInterfaceOrientation, viewportSize: CGSize) -> simd_float3?

从视图的2D空间返回点的投影,将场景渲染到ARKit检测到的3D世界空间的平面上。

应用运动模糊

var exposureDuration: TimeInterval

在渲染应用程序的虚拟内容时,用于实现运动模糊的值。

应用后处理照明

var exposureOffset: Float

您向自定义渲染器提供的值,以照亮您的场景。