LookAt相机方法? NOT SCNLookAtConstraint

时间:2016-03-31 01:18:52

标签: ios 3d camera scenekit scnnode

我知道SceneKit中存在SCNLookAtConstraint。然而,这种方法并不是我想要的。

我需要的是能够在任何特定时刻将相机指向太空中的一个点(不是节点)。

在世界坐标中有一个X,Y,Z,我需要相机旋转才能指向这一点。

这些点会随着时间的推移而改变(意味着不同的点被传递给一个方法,我需要从一个跳到另一个)。

我宁愿跳过计算eulerAngles,我看到的一些解决方案是基于分母中的trig函数和cos(角度)。通过拖动cameraNode,用户基本上可以自由旋转。

我在SceneKit中缺少任何方法吗?

2 个答案:

答案 0 :(得分:3)

在我看来,使用节点作为目标是最简单的方法。如果您创建一个空节点(没有几何体或相机或灯光),它将不可见,您将能够使用框架为您提供的最高可用抽象。使用动画或突然跳跃将节点从一点移动到另一点。

答案 1 :(得分:3)

GLKMatrix4方法在这里可能很有用,特别是GLKMatrix4MakeLookAt

给定眼睛位置(相机),您想要查看的位置,以及向上矢量,您将能够创建变换矩阵(作为GLKMatrix4)。然后,SceneKit函数SCNMatrix4FromGLKMatrix4会将其转换为SCNMatrix4,您可以将其设置为相机节点的变换。

TBH,我可能会选择Hal的解决方案。