3

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

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

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

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

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

我在 SceneKit 中缺少什么方法?

4

2 回答 2

3

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

于 2016-03-31T02:21:05.543 回答
3

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

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

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

于 2016-03-31T02:49:14.290 回答