ARKit - ARCamera的位置

时间:2017-07-15 16:59:03

标签: 3d camera scenekit augmented-reality arkit

我试图使用ARKit,我的问题非常简单。我怎样才能获得相机的位置?

我知道如果我在SCNNode00上放置0并且我的ARCamera正在寻找实例,我将不得不抬头看看3D物体。这意味着必须以某种方式获取设备相机的位置和方向。

那我怎么知道where the camera iswhere she is looking to

提前致谢。

2 个答案:

答案 0 :(得分:12)

您可以使用ARCamera.transform属性获取相机的当前变换。 以下代码来自Introducing ARKit at WWDC 2017,您可能希望将其作为简介。 我们正在使用变换将一个节点放在摄像机前10厘米处。

在斯威夫特:

var translation = matrix_identity_float4x4
translation.columns.3.z = -0.1 // Translate 10 cm in front of the camera
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)

在Objective-C

matrix_float4x4 translation = matrix_identity_float4x4;
translation.columns[3][2] = -0.1; // Translate 10 cm in front of the camera
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)

答案 1 :(得分:0)

或者,您可以同时对XYZ轴使用以下方法:

var translation = matrix_identity_float4x4

translation.columns.3 = simd_float4(0, 0.2, -0.5, 1)      // x, y, z, HC

aNode.simdTransform = matrix_multiply(translation, 
                                      currentFrame.camera.transform)

columns.3中的最后一个元素是齐次坐标,它等于1

希望这会有所帮助。