看看相机方法?不是 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 的解决方案。
我知道 SceneKit 中存在 SCNLookAtConstraint。然而,这种方法并不是我想要的。
我需要的是能够在任何给定时刻将相机指向 space 中的一个点(不是节点)。
在世界坐标中有一个 X、Y、Z,我需要旋转相机以使其指向该点。
这些点会随着时间的推移而改变(意味着不同的点被传递给一个方法,我需要 'jump' 从一个点到另一个点)。
我宁愿跳过计算 eulerAngles,我看到的一些解决方案是基于分母中的三角函数和 cos(angle)。用户基本可以通过拖动cameraNode自由旋转。
我在 SceneKit 中缺少任何方法吗?
在我看来,使用节点作为目标是最简单的方法。如果您创建一个空节点(没有几何体、相机或灯光),它将不可见,您将能够使用框架为您提供的最高可用抽象。将节点从一点移动到另一点,使用动画或突然跳跃。
这里可能会对 GLKMatrix4
方法感兴趣,特别是 GLKMatrix4MakeLookAt
。
给定眼睛位置(相机)、您想看的位置和向上矢量,您将能够创建一个变换矩阵(如 GLKMatrix4
)。然后,SceneKit 函数 SCNMatrix4FromGLKMatrix4
会将其转换为 SCNMatrix4
,您可以将其设置为相机节点的变换。
TBH,我可能会选择 Hal 的解决方案。