2016-03-31 27 views
3

我知道SceneKit中存在SCNLookAtConstraint。但是,这种方法并不是我正在寻找的。LookAt相机方法? NOT SCNLookAtConstraint

我需要的是能够在任何给定时刻将摄像机指向空间中的某个点(而不是节点)。

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

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

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

我在SceneKit中找不到任何方法?

回答

3

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

+0

谢谢哈尔,这是为我做的 –

3

GLKMatrix4方法可能在这里是感兴趣的,具体地是GLKMatrix4MakeLookAt

给定一个眼睛位置(相机),你想看的位置和一个向上的矢量,你将能够创建一个变换矩阵(作为GLKMatrix4)。 SceneKit功能SCNMatrix4FromGLKMatrix4会将其转换为SCNMatrix4,您可以将其设置为相机节点的变换。

TBH,我可能会去哈尔的解决方案。