【发布时间】:2018-05-23 00:01:35
【问题描述】:
我正在尝试在ARKit中获取构成截锥体边界的四个向量,我想出的解决方案如下:
- 找出相机的视野角度
- 然后找到相机的方向和向上向量
- 使用这些信息,使用叉积和旋转找到四个向量
这可能是一种草率的做法,但它是迄今为止我得到的最好的方法。
我能够从ARCamera.intrinsics 和ARCamera.transform 属性中获取FOV 角度和方向矢量。但是,我现在不知道如何获取相机的向上向量。
下面是我用来查找 FOV 角度和方向矢量的一段代码:
func session(_ session: ARSession, didUpdate frame: ARFrame) {
if xFovDegrees == nil || yFovDegrees == nil {
let imageResolution = frame.camera.imageResolution
let intrinsics = frame.camera.intrinsics
xFovDegrees = 2 * atan(Float(imageResolution.width) / (2 * intrinsics[0,0])) * 180 / Float.pi
yFovDegrees = 2 * atan(Float(imageResolution.height) / (2 * intrinsics[1,1])) * 180 / Float.pi
}
let cameraTransform = SCNMatrix4(frame.camera.transform)
let cameraDirection = SCNVector3(-1 * cameraTransform.m31,
-1 * cameraTransform.m32,
-1 * cameraTransform.m33)
}
我也愿意接受有关如何找到我想要获得的四个向量的建议。
【问题讨论】:
标签: ios swift camera scenekit arkit