看看相机方法?不是 SCNLookAtConstraint

LookAt camera method? NOT SCNLookAtConstraint

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

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

在世界坐标中有一个 X、Y、Z,我需要旋转相机以使其指向该点。

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

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

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

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

这里可能会对 GLKMatrix4 方法感兴趣,特别是 GLKMatrix4MakeLookAt

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

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